- Jan 20, 2012
-
-
Benjamin Kramer authored
Found by the clang static analyzer. llvm-svn: 148543
-
Benjamin Kramer authored
Found by the clang static analyzer. llvm-svn: 148541
-
Benjamin Kramer authored
Found by the clang static analyzer. llvm-svn: 148540
-
Craig Topper authored
Improve 256-bit shuffle splitting to allow 2 sources in each 128-bit lane. As long as only a single lane of the source is used in the lane in the destination. This makes the splitting match much closer to what happens with 256-bit shuffles when AVX is disabled and only 128-bit XMM is allowed. llvm-svn: 148537
-
Nick Lewycky authored
can't handle. Also don't produce non-zero results for things which won't be transformed by SROA at all just because we saw the loads/stores before we saw the use of the address. llvm-svn: 148536
-
Andrew Trick authored
LSR has gradually been improved to more aggressively reuse existing code, particularly existing phi cycles. This exposed problems with the SCEVExpander's sloppy treatment of its insertion point. I applied some rigor to the insertion point problem that will hopefully avoid an endless bug cycle in this area. Changes: - Always used properlyDominates to check safe code hoisting. - The insertion point provided to SCEV is now considered a lower bound. This is usually a block terminator or the use itself. Under no cirumstance may SCEVExpander insert below this point. - LSR is reponsible for finding a "canonical" insertion point across expansion of different expressions. - Robust logic to determine whether IV increments are in "expanded" form and/or can be safely hoisted above some insertion point. Fixes PR11783: SCEVExpander assert. llvm-svn: 148535
-
Craig Topper authored
llvm-svn: 148532
-
Bill Wendling authored
'insertvalue' instructions that recreate the structure returned by the 'landingpad' instruction. Because the 'insertvalue' instruction isn't supported by FastISel, this can save a bit of time during -O0 compilation. llvm-svn: 148520
-
Eli Friedman authored
llvm-svn: 148513
-
- Jan 19, 2012
-
-
Benjamin Kramer authored
llvm-svn: 148495
-
Owen Anderson authored
llvm-svn: 148493
-
Dan Gohman authored
rdar://10531041. llvm-svn: 148490
-
Devang Patel authored
llvm-svn: 148489
-
Nick Lewycky authored
llvm-svn: 148487
-
Devang Patel authored
llvm-svn: 148486
-
Devang Patel authored
llvm-svn: 148485
-
Evgeniy Stepanov authored
llvm-svn: 148473
-
Craig Topper authored
llvm-svn: 148467
-
Craig Topper authored
llvm-svn: 148466
-
Evan Cheng authored
llvm-svn: 148465
-
Evan Cheng authored
llvm-svn: 148464
-
Evan Cheng authored
llvm-svn: 148462
-
Jim Grosbach authored
llvm-svn: 148459
-
Jim Grosbach authored
llvm-svn: 148456
-
Jim Grosbach authored
llvm-svn: 148455
-
Evan Cheng authored
to instruction right after the last instruction in the bundle. - Add a finalizeBundle() variant that doesn't specify LastMI. Instead, the code will find the last instruction in the bundle by following the 'InsideBundle' marker. This is useful in case bundles are formed early (i.e. during MI scheduling) but finalized later (i.e. after register allocator has finished rewriting virtual registers with physical registers). llvm-svn: 148444
-
Nick Lewycky authored
llvm-svn: 148442
-
Evan Cheng authored
llvm-svn: 148440
-
Jakob Stoklund Olesen authored
It adds register mask operands to x86 call instructions. Once all the backend passes support register mask operands, this will be permanently enabled. llvm-svn: 148438
-
Jakob Stoklund Olesen authored
This is similar to implicit register operands. MC doesn't understand register liveness and call clobbers. llvm-svn: 148437
-
Jakob Stoklund Olesen authored
This SelectionDAG node will be attached to call nodes by LowerCall(), and eventually becomes a MO_RegisterMask MachineOperand on the MachineInstr representing the call instruction. LowerCall() will attach a register mask that depends on the calling convention. llvm-svn: 148436
-
Rafael Espindola authored
llvm-svn: 148434
-
- Jan 18, 2012
-
-
Jim Grosbach authored
Explicit pc-relative syntax. For example, "ldrb r2, [pc, #-22]". rdar://10250964 llvm-svn: 148432
-
Devang Patel authored
llvm-svn: 148431
-
Jim Grosbach authored
llvm-svn: 148427
-
Jim Grosbach authored
If the fixup is out of range for the Thumb1 instruction, relax it to the Thumb2 encoding instead. rdar://10711829 llvm-svn: 148424
-
Jim Grosbach authored
If the two fragments are in the same Atom, then the difference expression is resolvable at compile time. Previously we were checking that they were in the same fragment, but that breaks down in the presence of instruction relaxation which has multiple fragments in the same atom. rdar://10711829 llvm-svn: 148423
-
Jim Grosbach authored
llvm-svn: 148422
-
Dan Gohman authored
llvm-svn: 148419
-
Dan Gohman authored
of recognizing them by name. llvm-svn: 148416
-