projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
a2c3c36
)
[jit] Avoid licm for volatile variables, ssa ignores them so we can't detect whenever...
author
Zoltan Varga
<vargaz@gmail.com>
Wed, 4 Jun 2014 23:56:12 +0000
(
01:56
+0200)
committer
Zoltan Varga
<vargaz@gmail.com>
Wed, 4 Jun 2014 23:56:28 +0000
(
01:56
+0200)
mono/mini/ssa.c
patch
|
blob
|
history
diff --git
a/mono/mini/ssa.c
b/mono/mini/ssa.c
index 023d2778009bebb9a1002239cba36ec82a2427ee..801826b96e8b098caf1a5f102a3cde6b0aabce33 100644
(file)
--- a/
mono/mini/ssa.c
+++ b/
mono/mini/ssa.c
@@
-1424,7
+1424,7
@@
mono_ssa_loop_invariant_code_motion (MonoCompile *cfg)
else
sreg = -1;
if (sreg != -1) {
- MonoInst *tins;
+ MonoInst *tins
, *var
;
skip = FALSE;
for (tins = ins->prev; tins; tins = tins->prev) {
@@
-1439,6
+1439,9
@@
mono_ssa_loop_invariant_code_motion (MonoCompile *cfg)
}
if (skip)
continue;
+ var = get_vreg_to_inst (cfg, sreg);
+ if (var && (var->flags & (MONO_INST_VOLATILE|MONO_INST_INDIRECT)))
+ continue;
ins->sreg1 = sreg;
}