- May 26, 2010
-
-
Bill Wendling authored
llvm-svn: 104646
-
- May 25, 2010
-
-
Dan Gohman authored
llvm-svn: 104645
-
Eric Christopher authored
as well. llvm-svn: 104642
-
Bill Wendling authored
If you have a setjmp/longjmp situation, it's possible for stack slot coloring to reuse a stack slot before it's really dead. For instance, if we have something like this: 1: y = g; x = sigsetjmp(env, 0); switch (x) { case 1: /* ... */ goto run; case 0: run: do_run(); /* marked as "no return" */ break; case 3: if (...) { /* ... */ goto run; } /* ... */ break; } 2: g = y; "y" may be put onto the stack, so the expression "g = y" is relying upon the fact that the stack slot containing "y" isn't modified between (1) and (2). But it can be, because of the "no return" calls in there. A longjmp might come back with 3, modify the stack slot, and then go to case 0. And it's perfectly acceptable to reuse the stack slot there because there's no CFG flow from case 3 to (2). The fix is to disable certain optimizations in these situations. Ideally, we'd disable them for all "returns twice" functions. But we don't support that attribute. Check for "setjmp" and "sigsetjmp" instead. llvm-svn: 104640
-
Eric Christopher authored
and testcases accordingly. llvm-svn: 104635
-
Jakob Stoklund Olesen authored
llvm-svn: 104628
-
Dale Johannesen authored
Mon Ping provided; unfortunately bugpoint failed to reduce it, but I think it's important to have a test for this in the suite. 8023512. llvm-svn: 104624
-
Dale Johannesen authored
(oye, a word which should be better known to people writing tree traversals, means grandchild.) llvm-svn: 104619
-
Jakob Stoklund Olesen authored
llvm-svn: 104574
-
Bill Wendling authored
llvm-svn: 104572
-
- May 24, 2010
-
-
Evan Cheng authored
llvm-svn: 104560
-
Devang Patel authored
This fixes recent regression in store.exp from gdb testsuite. llvm-svn: 104524
-
Nicolas Geoffray authored
is first emitted, and StackOffsets are emitted in 16 bits. llvm-svn: 104488
-
- May 23, 2010
-
-
Daniel Dunbar authored
llvm-svn: 104463
-
- May 22, 2010
-
-
-
Jim Grosbach authored
Followups: docs patch for the builtin and eh.sjlj.setjmp cleanup to match longjmp. llvm-svn: 104419
-
Eric Christopher authored
llvm-svn: 104414
-
Devang Patel authored
llvm-svn: 104412
-
Bob Wilson authored
llvm-svn: 104410
-
Eric Christopher authored
Evan please verify! llvm-svn: 104408
-
- May 21, 2010
-
-
Evan Cheng authored
Allow machine cse to cse instructions which define physical registers. Controlled by option -machine-cse-phys-defs. llvm-svn: 104385
-
Bob Wilson authored
so that it will continue to test what it was meant to test when I commit a separate change for better support of BUILD_VECTOR and VECTOR_SHUFFLE for Neon. Fix a DAG combiner crash exposed by this test change. llvm-svn: 104380
-
Evan Cheng authored
that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. llvm-svn: 104377
-
Jakob Stoklund Olesen authored
reads or writes a register. This takes partial redefines and undef uses into account. Don't actually use it yet. That caused miscompiles. llvm-svn: 104372
-
Devang Patel authored
llvm-svn: 104338
-
Chris Lattner authored
llvm-svn: 104325
-
Jakob Stoklund Olesen authored
This reverts r104322. I think it was causing miscompilations. llvm-svn: 104323
-
Jakob Stoklund Olesen authored
This correctly handles partial redefines and undef uses. llvm-svn: 104322
-
Jakob Stoklund Olesen authored
definitions of the virtual register. This happens when spilling the registers produced by REG_SEQUENCE: %reg1047:5<def>, %reg1047:6<def>, %reg1047:7<def> = VLD3d8 %reg1033, 0, pred:14, pred:%reg0 The rewriter would spill the register multiple times, dead store elimination tried to keep up, but ended up cutting the branch it was sitting on. llvm-svn: 104321
-
Jakob Stoklund Olesen authored
<imp-def> operand for the full register. This ensures that the full physical register is marked live after register allocation. llvm-svn: 104320
-
Evan Cheng authored
llvm-svn: 104306
-
Devang Patel authored
llvm-svn: 104302
-
Evan Cheng authored
Allow targets more controls on what nodes are scheduled by reg pressure, what for latency in hybrid mode. llvm-svn: 104293
-
- May 20, 2010
-
-
Devang Patel authored
llvm-svn: 104265
-
Jim Grosbach authored
llvm-svn: 104254
-
Devang Patel authored
Split DbgVariable. Eventually, variable info will be communicated through frame index, or DBG_VALUE instruction, or collection of DBG_VALUE instructions. Plus each DbgVariable may not need a label. llvm-svn: 104233
-
Evan Cheng authored
pipeline stall. It's useful for targets like ARM cortex-a8. NEON has a lot of long latency instructions so a strict register pressure reduction scheduler does not work well. Early experiments show this speeds up some NEON loops by over 30%. llvm-svn: 104216
-
Nick Lewycky authored
llvm-svn: 104209
-
Eric Christopher authored
llvm-svn: 104197
-
Bob Wilson authored
test/Codegen/ARM/reg_sequence.ll but it doesn't affect the generated code because the coalescer cleans it up. Radar 7998853. llvm-svn: 104185
-