- Jan 12, 2009
-
-
Evan Cheng authored
Fix PR3241: Currently EmitCopyFromReg emits a copy from the physical register to a virtual register unless it requires an expensive cross class copy. That means we are only treating "expensive to copy" register dependency as physical register dependency. Also future proof the scheduler to handle "normal" physical register dependencies. The code is not exercised yet. llvm-svn: 62074
-
Owen Anderson authored
llvm-svn: 62073
-
Chris Lattner authored
llvm.memcpy/memset/memmove. This allows removal of some hackish code from basicaa. llvm-svn: 62071
-
Chris Lattner authored
change. llvm-svn: 62067
-
Chris Lattner authored
not a random piece of it. No functionality change. llvm-svn: 62066
-
Chris Lattner authored
parse them. tblgen doesn't yet do anything with this info though. llvm-svn: 62065
-
Dale Johannesen authored
compensation for turning off gcc's inliner. This gets us closer to the amount of inlining we were getting before. It is not a win on everything, of course, but seems to gain overall. llvm-svn: 62058
-
- Jan 11, 2009
-
-
Gabor Greif authored
llvm-svn: 62056
-
Gabor Greif authored
opcode on each delegation. Instead the information is cached on construction and the cached flag used thereafter. Introduced two predicates: isCall and isInvoke. llvm-svn: 62055
-
Chris Lattner authored
llvm-svn: 62048
-
Chris Lattner authored
not thrilled about 64-bit % in general, so rewrite to use * instead. llvm-svn: 62047
-
Chris Lattner authored
We should treat vectors as atomic types, not like arrays. llvm-svn: 62046
-
Chris Lattner authored
canonicalization transform based on duncan's comments: 1) improve the comment about %. 2) within our index loop make sure the offset stays within the *type size*, instead of within the *abi size*. This allows us to reason explicitly about landing in tail padding and means that issues like non-zero offsets into [0 x foo] types don't occur anymore. llvm-svn: 62045
-
Nick Lewycky authored
llvm-svn: 62039
-
Evan Cheng authored
llvm-svn: 62036
-
Bill Wendling authored
llvm-svn: 62035
-
Dan Gohman authored
llvm-svn: 62033
-
- Jan 10, 2009
-
-
Evan Cheng authored
llvm-svn: 62029
-
Bill Wendling authored
llvm-svn: 62025
-
Evan Cheng authored
llvm-svn: 62024
-
Devang Patel authored
llvm-svn: 62023
-
Devang Patel authored
llvm-svn: 62022
-
- Jan 09, 2009
-
-
Evan Cheng authored
llvm-svn: 62015
-
Evan Cheng authored
llvm-svn: 62006
-
Evan Cheng authored
llvm-svn: 62005
-
Misha Brukman authored
comprehensive and can support more complex style analysis. llvm-svn: 62002
-
Misha Brukman authored
llvm-svn: 62000
-
Devang Patel authored
llvm-svn: 61999
-
Chris Lattner authored
llvm-svn: 61997
-
Chris Lattner authored
llvm-svn: 61995
-
Misha Brukman authored
llvm-svn: 61991
-
Mikhail Glushenkov authored
llvm-svn: 61990
-
Mikhail Glushenkov authored
llvm-svn: 61989
-
Dan Gohman authored
llvm-svn: 61986
-
rdar://6480391Chris Lattner authored
I noticed this in the code compiled for a routine using std::map, which produced this code: %25 = tail call i32 @memcmp(i8* %24, i8* %23, i32 6) nounwind readonly %.lobit.i = lshr i32 %25, 31 ; <i32> [#uses=1] %tmp.i = trunc i32 %.lobit.i to i8 ; <i8> [#uses=1] %toBool = icmp eq i8 %tmp.i, 0 ; <i1> [#uses=1] br i1 %toBool, label %bb3, label %bb4 which compiled to: call L_memcmp$stub shrl $31, %eax testb %al, %al jne LBB1_11 ## with this change, we compile it to: call L_memcmp$stub testl %eax, %eax js LBB1_11 This triggers all the time in common code, with patters like this: %169 = and i32 %ply, 1 ; <i32> [#uses=1] %170 = trunc i32 %169 to i8 ; <i8> [#uses=1] %toBool = icmp ne i8 %170, 0 ; <i1> [#uses=1] %7 = lshr i32 %6, 24 ; <i32> [#uses=1] %9 = trunc i32 %7 to i8 ; <i8> [#uses=1] %10 = icmp ne i8 %9, 0 ; <i1> [#uses=1] etc llvm-svn: 61985
-
Chris Lattner authored
llvm-svn: 61984
-
Chris Lattner authored
jump threading can have bugs, who knew? ;-) llvm-svn: 61983
-
Chris Lattner authored
llvm-svn: 61982
-
Chris Lattner authored
llvm-svn: 61981
-
Chris Lattner authored
llvm-svn: 61980
-