- Jan 12, 2009
-
-
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
-
Chris Lattner authored
just llc. llvm-svn: 61979
-
Chris Lattner authored
llvm-svn: 61978
-