- Jun 21, 2011
-
-
Jay Foad authored
because it won't work after my phi operand changes, because the incoming blocks will no longer be Uses. llvm-svn: 133512
-
Evan Cheng authored
1. (((x) & 0xFF00) >> 8) | (((x) & 0x00FF) << 8) => (bswap x) >> 16 2. ((x&0xff)<<8)|((x&0xff00)>>8)|((x&0xff000000)>>8)|((x&0x00ff0000)<<8)) => (rotl (bswap x) 16) This allows us to eliminate most of the def : Pat patterns for ARM rev16 revsh instructions. It catches many more cases for ARM and x86. rdar://9609108 llvm-svn: 133503
-
Andrew Trick authored
ops. This is a rewrite of the IV simplification algorithm used by -disable-iv-rewrite. To avoid perturbing the default mode, I temporarily split the driver and created SimplifyIVUsersNoRewrite. The idea is to avoid doing opcode/pattern matching inside IndVarSimplify. SCEV already does it. We want to optimize with the full generality of SCEV, but optimize def-use chains top down on-demand rather than rewriting the entire expression bottom-up. This was easy to do for operations that SCEV can prove are identity function. So we're now eliminating bitmasks and zero extends this way. A result of this rewrite is that indvars -disable-iv-rewrite no longer requires IVUsers. llvm-svn: 133502
-
Chad Rosier authored
llvm-svn: 133499
-
Akira Hatanaka authored
handle functions with return type Complex long long. llvm-svn: 133497
-
Akira Hatanaka authored
llvm-svn: 133496
-
Akira Hatanaka authored
llvm-svn: 133494
-
Dan Gohman authored
functions do not appear in the module. llvm-svn: 133478
-
Bill Wendling authored
llvm-svn: 133473
-
- Jun 20, 2011
-
-
Justin Holewinski authored
llvm-svn: 133454
-
Nick Lewycky authored
movd when assembling. llvm-svn: 133452
-
Jay Foad authored
llvm-svn: 133449
-
Justin Holewinski authored
llvm-svn: 133447
-
Rafael Espindola authored
llvm-svn: 133446
-
Justin Holewinski authored
The current implementation generates stack loads/stores, which are really just mov instructions from/to "special" registers. This may not be the most efficient implementation, compared to an approach where the stack registers are directly folded into instructions, but this is easier to implement and I have yet to see a case where ptxas is unable to see through this kind of register usage and know what is really going on. llvm-svn: 133443
-
Roman Divacky authored
with 32bit values. llvm-svn: 133439
-
Jay Foad authored
Change PHINodes to store simple pointers to their incoming basic blocks, instead of full-blown Uses. Note that this loses an optimization in SplitCriticalEdge(), because we can no longer walk the use list of a BasicBlock to find phi nodes. See the comment I removed starting "However, the foreach loop is slow for blocks with lots of predecessors". Extend replaceAllUsesWith() on a BasicBlock to also update any phi nodes in the block's successors. This mimics what would have happened when PHINodes were proper Users of their incoming blocks. (Note that this only works if OldBB->replaceAllUsesWith(NewBB) is called when OldBB still has a terminator instruction, so it still has some successors.) llvm-svn: 133435
-
Jay Foad authored
Change various bits of code to make better use of the existing PHINode API, to insulate them from forthcoming changes in how PHINodes store their operands. llvm-svn: 133434
-
Jay Foad authored
I don't think the AugmentedUse struct buys us much, either in correctness or in ease of use. Ditch it, and simplify Use::getUser() and User::allocHungoffUses(). llvm-svn: 133433
-
Rafael Espindola authored
* Don't introduce a duplicated bb in the CFG * When making a branch unconditional, clear the PredCond array so that it is really unconditional. llvm-svn: 133432
-
Duncan Sands authored
dragonegg buildbots back to life. Original commit message: Teach early dup how to duplicate basic blocks with one successor and only phi instructions into more complex blocks. llvm-svn: 133430
-
Nadav Rotem authored
source vector type is to be split while the target vector is to be promoted. (eg: <4 x i64> -> <4 x i8> ) llvm-svn: 133424
-
Francois Pichet authored
Fix MSVC build. next() function already exists in the MSVC headers. This create a overload conflict. Make sure we pick up the llvm one. llvm-svn: 133416
-
Rafael Espindola authored
into more complex blocks. llvm-svn: 133415
-
Chris Lattner authored
all over the place in different styles and variants. Standardize on two preferred entrypoints: one that takes a StructType and ArrayRef, and one that takes StructType and varargs. In cases where there isn't a struct type convenient, we now add a ConstantStruct::getAnon method (whose name will make more sense after a few more patches land). It would be "really really nice" if the ConstantStruct::get and ConstantVector::get methods didn't make temporary std::vectors. llvm-svn: 133412
-
- Jun 19, 2011
-
-
Jay Foad authored
const Constant *. llvm-svn: 133400
-
Nadav Rotem authored
llvm-svn: 133389
-
Nadav Rotem authored
llvm-svn: 133388
-
Nadav Rotem authored
instead of scalarizing, and doing an element-by-element truncat. llvm-svn: 133382
-
Chris Lattner authored
top level type without a specified number. This syntax isn't documented and blocks forward progress. llvm-svn: 133371
-
Chris Lattner authored
llvm-svn: 133369
-
Chris Lattner authored
top level type without a specified number. This asmprinter has never generated this, as you can tell by no tests being updated. It also isn't documented. llvm-svn: 133368
-
Chris Lattner authored
much cleaner. llvm-svn: 133364
-
Chris Lattner authored
llvm-svn: 133363
-
- Jun 18, 2011
-
-
Chris Lattner authored
llvm-svn: 133362
-
Chris Lattner authored
now that Type::getDescription() is dead, the TypePrinting class can move from Assembly/Writer.h to being a private class in AsmWriter.cpp. llvm-svn: 133361
-
Chris Lattner authored
removes some gunk from LLVMContext. llvm-svn: 133360
-
Chris Lattner authored
temporary std::string for every function being checked. llvm-svn: 133355
-
Benjamin Kramer authored
llvm-svn: 133352
-
Benjamin Kramer authored
llvm-svn: 133351
-