- Jan 01, 2010
-
-
Chris Lattner authored
positive and negative forms of constants together. This allows us to compile: int foo(int x, int y) { return (x-y) + (x-y) + (x-y); } into: _foo: ## @foo subl %esi, %edi leal (%rdi,%rdi,2), %eax ret instead of (where the 3 and -3 were not factored): _foo: imull $-3, 8(%esp), %ecx imull $3, 4(%esp), %eax addl %ecx, %eax ret this started out as: movl 12(%ebp), %ecx imull $3, 8(%ebp), %eax subl %ecx, %eax subl %ecx, %eax subl %ecx, %eax ret This comes from PR5359. llvm-svn: 92381
-
Chris Lattner authored
llvm-svn: 92377
-
Chris Lattner authored
llvm-svn: 92375
-
Ted Kremenek authored
llvm-svn: 92374
-
- Dec 31, 2009
-
-
Chris Lattner authored
This allows us to optimize test12 into: define i32 @test12(i32 %X) { %factor = mul i32 %X, -3 ; <i32> [#uses=1] %Z = add i32 %factor, 6 ; <i32> [#uses=1] ret i32 %Z } instead of: define i32 @test12(i32 %X) { %Y = sub i32 6, %X ; <i32> [#uses=1] %C = sub i32 %Y, %X ; <i32> [#uses=1] %Z = sub i32 %C, %X ; <i32> [#uses=1] ret i32 %Z } llvm-svn: 92373
-
Chris Lattner authored
sorted, so we can just do a linear scan. llvm-svn: 92372
-
Chris Lattner authored
llvm-svn: 92370
-
Chris Lattner authored
llvm-svn: 92369
-
Chris Lattner authored
fix RemoveDeadBinaryOp to actually do something. llvm-svn: 92368
-
Chris Lattner authored
instead of std::vector. llvm-svn: 92366
-
Chris Lattner authored
llvm-svn: 92364
-
Chris Lattner authored
improve some comments, simplify a bit of code. llvm-svn: 92363
-
Chris Lattner authored
llvm-svn: 92362
-
Chris Lattner authored
miscompilation, PR5458. llvm-svn: 92354
-
Chris Lattner authored
llvm-svn: 92349
-
Chris Lattner authored
llvm-svn: 92347
-
Chris Lattner authored
llvm-svn: 92346
-
Chris Lattner authored
llvm-svn: 92344
-
Chris Lattner authored
llvm-svn: 92343
-
Douglas Gregor authored
to SmallVector, and add a unit test. llvm-svn: 92340
-
Chris Lattner authored
by moving one method out of line and eliminating redundant checks from other methods. llvm-svn: 92337
-
Chris Lattner authored
llvm-svn: 92335
-
Chris Lattner authored
one that remains. llvm-svn: 92334
-
Chris Lattner authored
llvm-svn: 92333
-
Chris Lattner authored
llvm-svn: 92332
-
Chris Lattner authored
llvm-svn: 92331
-
Chris Lattner authored
llvm-svn: 92330
-
Chris Lattner authored
dumps one node instead of all of them. llvm-svn: 92329
-
Chris Lattner authored
llvm-svn: 92327
-
Chris Lattner authored
mdnode, not just operand 0 over and over. llvm-svn: 92326
-
Chris Lattner authored
llvm-svn: 92325
-
Chris Lattner authored
llvm-svn: 92324
-
Chris Lattner authored
method that needs it (DbgValueInst::getValue) has been moved out of line. llvm-svn: 92323
-
Chris Lattner authored
things that occur in types. "operands" are things that occur in values. llvm-svn: 92322
-
Chris Lattner authored
after the MDNode in memory. This eliminates the operands pointer and saves a new[] per node. Note that the code in DIDerivedType::replaceAllUsesWith is wrong and quite scary. A MDNode should not be RAUW'd with something else: this changes all uses of the mdnode, which may not be debug info related! Debug info should use something non-mdnode for declarations. llvm-svn: 92321
-
Chris Lattner authored
llvm-svn: 92320
-
- Dec 30, 2009
-
-
Chris Lattner authored
so can be a huge performance issue when tearing down modules and mdnodes are not guaranteed to be unique anyway. This speeds up: $ time ~/llvm/Release/bin/clang gcc.c -w -S -g from 72 to 35s, where gcc.c is from: http://people.csail.mit.edu/smcc/projects/single-file-programs/ llvm-svn: 92315
-
Chris Lattner authored
llvm-svn: 92311
-
Douglas Gregor authored
llvm-svn: 92309
-
Chris Lattner authored
llvm-svn: 92304
-