- Feb 05, 2012
-
-
David Blaikie authored
llvm-svn: 149813
-
NAKAMURA Takumi authored
llvm-svn: 149810
-
Craig Topper authored
llvm-svn: 149809
-
Craig Topper authored
llvm-svn: 149808
-
Craig Topper authored
Add target specific node for PMULUDQ. Change patterns to use it and custom lower intrinsics to it. Use it instead of intrinsic to handle 64-bit vector multiplies. llvm-svn: 149807
-
Chris Lattner authored
ConstantDataArray::getString direction, instead of "boxing" each byte into a ConstantInt and using ConstantArray::get. llvm-svn: 149805
-
Chris Lattner authored
we don't regress on it in the future. llvm-svn: 149803
-
Chris Lattner authored
but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. llvm-svn: 149800
-
Craig Topper authored
Remove most of the intrinsics for XOP VPCMOV instruction. They all aliased to the same instruction with different types. This would be better accomplished with casts in the not yet created xopintrin.h header file. llvm-svn: 149795
-
- Feb 04, 2012
-
-
Sean Callanan authored
cache disassemblers according to the string value of the target triple, not according to the enum of the triple CPU. The reason for this is that certain attributes of the instruction set are not reflected in the enum, but only in the string. llvm-svn: 149773
-
Jakob Stoklund Olesen authored
A live range that has an early clobber tied redef now looks like a normal tied redef, except the early clobber def uses the early clobber slot. This is enough to handle any strange interference problems. llvm-svn: 149769
-
Jakob Stoklund Olesen authored
I don't have a test that fails because of this, but a test case like CodeGen/X86/2009-12-01-EarlyClobberBug.ll exposes the problem. EAX is redefined by a tied early clobber operand on inline asm, and the live range should look like this: %EAX,inf = [48r,64e:0)[64e,80r:1) 0@48r 1@64e Previously, the two values got merged: %EAX,inf = [48r,80r:0) 0@48r With this bug fixed, the REDEF_BY_EC VNInfo flag is no longer needed. llvm-svn: 149768
-
Nick Lewycky authored
Andy, in a previous commit you made this into an ImmutablePass so that you could add it to the PassManager, then in the next commit you left it a Pass but removed the code that added it to the PM. If you do add it to the PM then the PM should take care of deleting it, but it's also true that nothing in codegen needs this object to exist after it's done its work here. It's not clear to me which design you want; this should likely either cease to be a Pass or be added to the PM where other parts of CodeGen will request it. llvm-svn: 149765
-
Jakob Stoklund Olesen authored
If a value is defined by a COPY, that instuction can easily and cheaply be found by getInstructionFromIndex(VNI->def). This reduces the size of VNInfo from 24 to 16 bytes, and improves llc compile time by 3%. llvm-svn: 149763
-
Hal Finkel authored
By default, boost the chain depth contribution of loads and stores. This will allow a load/store pair to vectorize even when it would not otherwise be long enough to satisfy the chain depth requirement. llvm-svn: 149761
-
Qirun Zhang authored
llvm-svn: 149758
-
Qirun Zhang authored
add a blank line. llvm-svn: 149757
-
Dylan Noblesmith authored
It was writing generated files to the clang srcdir when '--with-clang-srcdir' was specified. llvm-svn: 149756
-
Andrew Trick authored
Passes prior to instructon selection are now split into separate configurable stages. Header dependencies are simplified. The bulk of this diff is simply removal of the silly DisableVerify flags. Sorry for the target header churn. Attempting to stabilize them. llvm-svn: 149754
-
Andrew Trick authored
llvm-svn: 149753
-
Andrew Trick authored
llvm-svn: 149752
-
Dylan Noblesmith authored
Left over from r116516. llvm-svn: 149751
-
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
-
Dylan Noblesmith authored
Now this works with and without --with-clang-srcdir, with and without an out-of-tree build. llvm-svn: 149749
-
Devang Patel authored
llvm-svn: 149737
-
Devang Patel authored
llvm-svn: 149736
-
Devang Patel authored
llvm-svn: 149732
-
Chad Rosier authored
llvm-svn: 149730
-
Bill Wendling authored
llvm-svn: 149728
-
Jakob Stoklund Olesen authored
They are not used any more. Simply use SlotIndex() to get an invalid index. llvm-svn: 149727
-
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
-
Brendon Cahoon authored
When adding the {-1, -1} entry to the DFAStateInputTable, we need to increment the index used to populate the DFAStateEntryTable. Otherwise, the entry table will be off by one for each transition after the {-1, -1} entry. PR11908. llvm-svn: 149713
-
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
-