- Feb 03, 2012
-
-
Jakob Stoklund Olesen authored
SelectionDAG has 4 different ways of passing physreg defs to users. Collect all of the uses at the same time, and pass all of them to MI->setPhysRegsDeadExcept() to mark the remaining defs dead. The setPhysRegsDeadExcept() function will soon add the required implicit-defs to instructions with register mask operands. llvm-svn: 149708
-
Chad Rosier authored
llvm-svn: 149706
-
Andrew Trick authored
llvm-svn: 149705
-
Chad Rosier authored
llvm-svn: 149704
-
Duncan Sands authored
llvm-svn: 149698
-
Nadav Rotem authored
The type-legalizer often scalarizes code. One of the common patterns is extract-and-truncate. In this patch we optimize this pattern and convert the sequence into extract op of a narrow type. This allows the BUILD_VECTOR dag optimizations to construct efficient shuffle operations in many cases. llvm-svn: 149692
-
Craig Topper authored
llvm-svn: 149683
-
Cameron Zwarich authored
disassembler, just like the generic disassembler. llvm-svn: 149681
-
Craig Topper authored
Remove unnecessary qualification on 256-bit vector handling in LowerBUILD_VECTOR. Condition was already guaranteed by earlier code. llvm-svn: 149680
-
Craig Topper authored
llvm-svn: 149678
-
Cameron Zwarich authored
llvm-svn: 149674
-
Andrew Trick authored
Allows command line overrides to be centralized in LLVMTargetMachine.cpp. LLVMTargetMachine can intercept common passes and give precedence to command line overrides. Allows adding "internal" target configuration options without touching TargetOptions. Encapsulates the PassManager. Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs. Allows modifying the target configuration hooks without rebuilding the world. llvm-svn: 149672
-
Andrew Trick authored
llvm-svn: 149671
-
Akira Hatanaka authored
needed to emit a 64-bit gp-relative relocation entry. Make changes necessary for emitting jump tables which have entries with directive .gpdword. This patch does not implement the parts needed for direct object emission or JIT. llvm-svn: 149668
-
Cameron Zwarich authored
dylib. This regressed with r145408. I will try to make a test case and add it so that this doesn't happen again. llvm-svn: 149667
-
Lang Hames authored
llvm-svn: 149655
-
Dan Gohman authored
PHI nodes which were matched, rather than climbing up the original PHI node's operands to rediscover PHI nodes for recording, since the PHI nodes found that are not necessarily part of the matched set. This fixes rdar://10589171. llvm-svn: 149654
-
Rafael Espindola authored
that just uses the new toolchain probing logic. This fixes linking with -m32 on 64 bit systems (the /32 dir was not being added to the search). llvm-svn: 149651
-
Jim Grosbach authored
llvm-svn: 149650
-
Jim Grosbach authored
llvm-svn: 149649
-
Jim Grosbach authored
More targetted fix replacing d0e277d272d517ca1cda368267d199f0da7cad95. llvm-svn: 149648
-
Jim Grosbach authored
This reverts commit d0e277d272d517ca1cda368267d199f0da7cad95. llvm-svn: 149647
-
Jakob Stoklund Olesen authored
It doesn't seem worthwhile to give meaning to a NULL register mask pointer. It complicates all the code using register mask operands. llvm-svn: 149646
-
Daniel Dunbar authored
llvm-svn: 149643
-
Daniel Dunbar authored
build/Make: Add missing dependency, LLVMBuild makefile fragment implicitly depends on Makefile.config. llvm-svn: 149642
-
- Feb 02, 2012
-
-
Jakob Stoklund Olesen authored
NEON loads and stores accept single and double spaced pairs, triples, and quads of D registers. This patch adds new register classes to accurately model those constraints: Dn, Dn+1 Dn, Dn+2 ---------------------- DPair DPairSpc DTriple DTripleSpc DQuad DQuadSpc Also extend the existing QQ and QQQQ register classes to contains all Q pairs and quads instead of just the aligned ones. These new register classes will make it possible to accurately model constraints on NEON loads and stores, and we can get rid of all the NEON pseudo-instructions. The late scheduler will be able to accurately model instruction dependencies from the explicit operands. This more than doubles the number of ARM registers, but the backend passes are quite good at handling this. The llc -O0 compile time only regresses by 1.5%. Future work on register mask operands will recover this regression. llvm-svn: 149640
-
Matt Beaumont-Gay authored
llvm-svn: 149615
-
Benjamin Kramer authored
Also silences warnings about bodyless for loops. llvm-svn: 149612
-
Hal Finkel authored
As suggested by Nick Lewycky, the tree traversal queues have been changed to SmallVectors and the associated loops have been rotated. Also, an 80-col violation was fixed. llvm-svn: 149607
-
NAKAMURA Takumi authored
Move test/CodeGen/Generic/2012-02-01-CoalescerBug.ll to CodeGen/ARM, for now. It requires TARGETS=arm. I cannot reproduce a fixed issue with other targets. llvm-svn: 149604
-
Elena Demikhovsky authored
llvm-svn: 149601
-
Elena Demikhovsky authored
Special handling was added for v4i32 -> v4i64 and v8i16 -> v8i32 extensions. llvm-svn: 149600
-
Francois Pichet authored
llvm-svn: 149599
-
Lang Hames authored
Re-apply the coalescer fix from r149147. Commit r149597 should have fixed the llvm-gcc and clang self-host issues. llvm-svn: 149598
-
Lang Hames authored
llvm-svn: 149597
-
Lang Hames authored
llvm-svn: 149596
-
Hal Finkel authored
Long basic blocks with many candidate pairs (such as in the SHA implementation in Perl 5.14; thanks to Roman Divacky for the example) used to take an unacceptably-long time to compile. Instead, break long blocks into groups so that no group has too many candidate pairs. llvm-svn: 149595
-
Lang Hames authored
more than two adjacent ranges needed to be merged. The new version should be able to handle an arbitrary sequence of adjancent ranges. llvm-svn: 149588
-
Akira Hatanaka authored
llvm-svn: 149585
-
Akira Hatanaka authored
selector registers. llvm-svn: 149584
-