- Oct 12, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 141763
-
Akira Hatanaka authored
llvm-svn: 141761
-
Akira Hatanaka authored
Remove unused classes. llvm-svn: 141757
-
Nick Lewycky authored
llvm-svn: 141750
-
Nick Lewycky authored
llvm-svn: 141749
-
Evan Cheng authored
1. The speculation check may not have been performed if the BB hasn't had a load LICM candidate. 2. If the candidate would be CSE'ed, then go ahead and speculatively LICM the instruction even if it's in high register pressure situation. llvm-svn: 141747
-
Jakob Stoklund Olesen authored
When widening a copy, we are reading a larger register that may not be live. Use an <undef> flag to tell the register scavenger and machine code verifier that we know the value isn't defined. We now widen: %S6<def> = COPY %S4<kill>, %D3<imp-def> into: %D3<def> = VMOVD %D2<undef>, pred:14, pred:%noreg, %S4<imp-use,kill> This also keeps the <kill> flag on %S4 so we don't inadvertently kill a live value in %S5. Finally, ensure that ARMBaseInstrInfo::setExecutionDomain() preserves the <undef> flag when converting VMOVD to VORR. llvm-svn: 141746
-
Evan Cheng authored
Also teach MachineLICM to avoid "speculation" when register pressure is high. llvm-svn: 141744
-
Akira Hatanaka authored
llvm-svn: 141743
-
Akira Hatanaka authored
instructions with two register operands derive from it. llvm-svn: 141742
-
Akira Hatanaka authored
llvm-svn: 141737
-
Akira Hatanaka authored
arithmetic and logical instructions with three register operands derive from them. Fix instruction encoding too. llvm-svn: 141736
-
Eric Christopher authored
file. Since it should only be used when necessary propagate it through the backend code generation and tweak testcases accordingly. This helps with code like in clang's test/CodeGen/debug-info-line.c where we have multiple #line directives within a single lexical block and want to generate only a single block that contains each file change. Part of rdar://10246360 llvm-svn: 141729
-
Eric Christopher authored
llvm-svn: 141728
-
Eric Christopher authored
llvm-svn: 141727
-
Bill Wendling authored
The blocks with invokes have branches to the dispatch block, because that more correctly models the behavior of the CFG. The dispatch of course has edges to the landing pads. Those landing pads could contain invokes, which then have branches back to the dispatch. This creates a loop. The machine LICM pass looks at this loop and thinks it can hoist elements out of it. But because the dispatch is an alternate entry point into the program, the hoisted instructions won't be executed. I wasn't able to get a testcase which was small and could reproduce all of the time. The function_try_block.cpp in llvm-test was where this showed up. llvm-svn: 141726
-
Akira Hatanaka authored
llvm-svn: 141722
-
- Oct 11, 2011
-
-
Jim Grosbach authored
Fill out the rest of the encoding information, update to properly mark the LDC/STC instructions as predicable while the LDC2/STC2 instructions are not, and adjust the parser accordingly. llvm-svn: 141721
-
Akira Hatanaka authored
llvm-svn: 141720
-
Akira Hatanaka authored
the real instructions. llvm-svn: 141718
-
Bill Wendling authored
llvm-svn: 141716
-
Akira Hatanaka authored
llvm-svn: 141715
-
Cameron Zwarich authored
would have never worked, since the element type of a vector type is never a vector type. Also fix the conditional to be more direct in checking whether EltTy is a vector type. llvm-svn: 141713
-
Akira Hatanaka authored
llvm-svn: 141708
-
Jim Grosbach authored
We parse at least some forms of the instructions now. Encoding is pretty screwed up, still, though. llvm-svn: 141704
-
Daniel Dunbar authored
lying around... llvm-svn: 141703
-
Akira Hatanaka authored
llvm-svn: 141696
-
Akira Hatanaka authored
llvm-svn: 141695
-
Akira Hatanaka authored
llvm-svn: 141694
-
Devang Patel authored
For example, MachineLICM should not hoist a load that is not guaranteed to be executed. Radar 10254254. llvm-svn: 141689
-
Owen Anderson authored
Expose MachOObjectFile externally, like we do for COFF. First step in reducing the amount of special-purpose code needed for llvm-objdump. llvm-svn: 141684
-
Jim Grosbach authored
llvm-svn: 141682
-
Jim Grosbach authored
llvm-svn: 141671
-
Nadav Rotem authored
llvm-svn: 141667
-
Richard Osborne authored
This fixes an assert due to the operands of the DBG_VALUE instruction not being as expected (PR11105). llvm-svn: 141666
-
Kalle Raiskila authored
llvm-svn: 141665
-
Nadav Rotem authored
Add support for legalization of vector trunc-store where the saved scalar type is illegal (for example, v2i16 on systems where the smallest store size is i32) llvm-svn: 141661
-
Nadav Rotem authored
llvm-svn: 141659
-
Craig Topper authored
llvm-svn: 141656
-
Craig Topper authored
llvm-svn: 141654
-