- Oct 12, 2011
-
-
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
-
Bob Wilson authored
llvm-svn: 141741
-
Eric Christopher authored
llvm-svn: 141739
-
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
-
Chris Lattner authored
llvm-svn: 141734
-
Chris Lattner authored
llvm-svn: 141733
-
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
llvm-svn: 141705
-
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
-
Daniel Dunbar authored
unused) code from .cmake to DataTypes.h.in so that the files are essentially in sync module differences in autoconf/cmake replacement syntax. llvm-svn: 141702
-
Eli Friedman authored
llvm-svn: 141699
-
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
-
Lang Hames authored
llvm-svn: 141687
-
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
-
Duncan Sands authored
llvm-svn: 141674
-
Jim Grosbach authored
llvm-svn: 141671
-
Nadav Rotem authored
llvm-svn: 141667
-