- Feb 04, 2012
-
-
Andrew Trick authored
llvm-svn: 149753
-
Andrew Trick authored
llvm-svn: 149752
-
Dylan Noblesmith authored
Don't form an out of bounds pointer just to test if it would be out of bounds. Also perform the same bounds checking for all the previous mapped structures. llvm-svn: 149750
-
Devang Patel authored
llvm-svn: 149737
-
Devang Patel authored
llvm-svn: 149736
-
Devang Patel authored
llvm-svn: 149732
-
Chad Rosier authored
llvm-svn: 149730
-
Devang Patel authored
llvm-svn: 149724
-
Jakob Stoklund Olesen authored
llvm-svn: 149722
-
- Feb 03, 2012
-
-
Jakob Stoklund Olesen authored
llvm-svn: 149717
-
Chad Rosier authored
llvm-svn: 149716
-
Jakob Stoklund Olesen authored
Calls that use register mask operands don't have implicit defs for returned values. The register mask operand handles the call clobber, but it always behaves like a set of dead defs. Add live implicit defs for any implicitly defined physregs that are actually used. llvm-svn: 149715
-
Chad Rosier authored
llvm-svn: 149714
-
Chad Rosier authored
llvm-svn: 149712
-
Jakob Stoklund Olesen authored
llvm-svn: 149709
-
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
-
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
-
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
-
Lang Hames authored
llvm-svn: 149655
-
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
-
- 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
-
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
-
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
-