summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Unbreak C++ tests on x86 Darwin.Evan Cheng2008-07-082-7/+15
| | | | llvm-svn: 53237
* LegalizeTypes support for FP_ROUND and FP_EXTENDDuncan Sands2008-07-082-2/+46
| | | | | | soft float. llvm-svn: 53231
* Add some helpers for manipulating functionDuncan Sands2008-07-081-13/+7
| | | | | | parameter attributes. llvm-svn: 53228
* Pacify gcc-4.3.Duncan Sands2008-07-081-2/+4
| | | | llvm-svn: 53227
* Add some convenience methods for manipulatingDuncan Sands2008-07-081-14/+32
| | | | | | call attributes. llvm-svn: 53223
* Fix three bugs:Chris Lattner2008-07-081-56/+101
| | | | | | | | | | | 1) evaluate [v]fcmp true/false with undefs to true or false instead of undef. 2) fix vector comparisons with undef to return a vector result instead of i1 3) fix vector comparisons with evaluatable results to return vector true/false instead of i1 true/false (PR2529) llvm-svn: 53220
* Expand SCEVUDiv of power of 2 to a lshr instruction.Nick Lewycky2008-07-081-0/+14
| | | | llvm-svn: 53217
* Avoid unnecessary string construction during asm printing.Evan Cheng2008-07-083-15/+35
| | | | llvm-svn: 53215
* Pool-allocation for MachineInstrs, MachineBasicBlocks, andDan Gohman2008-07-0732-381/+469
| | | | | | | | | | | MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. llvm-svn: 53212
* Pool-allocation for SDNodes. The pool is allocated once for each function,Dan Gohman2008-07-072-88/+153
| | | | | | | | | and reused across SelectionDAGs. This drastically reduces the number of calls to malloc/free made during instruction selection, and improves memory locality. llvm-svn: 53211
* Add some basic Pool-allocation infrastructure. This adds a Recycler class,Dan Gohman2008-07-071-0/+7
| | | | | | | | for handling bookkeeping for deleted objects, as well as the alist class template, for keeping lists of objects allocated from Recyclers, and some related utilities. llvm-svn: 53210
* Clean up PPC register specification.Evan Cheng2008-07-071-34/+33
| | | | llvm-svn: 53209
* ATT asm printer just print register AsmName's instead of calling tolower on ↵Evan Cheng2008-07-074-120/+117
| | | | | | each charater of Name. This speeds it up by 10%. llvm-svn: 53208
* TargetRegisterDesc::Name field is the same as the abstract register name. ↵Evan Cheng2008-07-071-1/+0
| | | | | | There is no need for targets to specify register names in addition to their AsmName's. llvm-svn: 53207
* Use the canonical way to get an empty structure.Bill Wendling2008-07-071-3/+2
| | | | llvm-svn: 53206
* Use StringMap for greater justice!Bill Wendling2008-07-071-1/+1
| | | | llvm-svn: 53202
* Fix SDNode::MorphNodeTo (a function used by by SelectNodeTo) toDan Gohman2008-07-071-43/+50
| | | | | | | properly track dead nodes that are on the original SDNode's operand list but not the new one, and have no other uses. llvm-svn: 53201
* Move MachineMemOperand's constructor out of line, to avoid aDan Gohman2008-07-071-0/+11
| | | | | | #include dependency on Support/MathExtras.h in the header file. llvm-svn: 53200
* Simplify this use of BuildMI. This is also in preparation forDan Gohman2008-07-071-3/+1
| | | | | | pool-allocating MachineInstrs. llvm-svn: 53198
* Use of operator* is redundant and confusing here.Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53197
* Minor const-correctness fixes.Dan Gohman2008-07-072-2/+2
| | | | llvm-svn: 53196
* Assert that all MachineInstrs update PhysRegUseDefLists inDan Gohman2008-07-071-0/+3
| | | | | | their cleanup code. llvm-svn: 53194
* Fix two serious LSR bugs.Evan Cheng2008-07-071-37/+37
| | | | | | | 1. LSR runOnLoop is always returning false regardless if any transformation is made. 2. AddUsersIfInteresting can create new instructions that are added to DeadInsts. But there is a later early exit which prevents them from being freed. llvm-svn: 53193
* fixed 32-bit fp_to_sint patternBruno Cardoso Lopes2008-07-072-10/+14
| | | | llvm-svn: 53192
* Remove most of the uses of SDOperandPtr, usually replacing it with aDan Gohman2008-07-071-38/+69
| | | | | | | | | | | | | | simple const SDOperand*, which is what's usually needed. For AddNodeIDOperands, which is small, just duplicate the function to accept an SDUse*. For SelectionDAG::getNode - Add an overload that accepts SDUse* that copies the operands into a temporary SDOperand array, but also has special-case checks for 0 through 3 operands to avoid the copy in the common cases. llvm-svn: 53183
* Add explicit keywords.Dan Gohman2008-07-0711-12/+12
| | | | llvm-svn: 53179
* Use empty() instead of size().Dan Gohman2008-07-071-1/+1
| | | | llvm-svn: 53178
* Make DenseMap's insert return a pair, to more closely resemble std::map.Dan Gohman2008-07-075-19/+29
| | | | llvm-svn: 53177
* LegalizeSetCCOperands should legalize the result of ExpandLibCall. Patch by ↵Evan Cheng2008-07-071-1/+1
| | | | | | Richard Osborne. llvm-svn: 53169
* Handle 'lshr' instruction with SCEVUDiv object.Nick Lewycky2008-07-071-2/+14
| | | | | | Comment the xor %x, -1 case. llvm-svn: 53167
* Prevent option name conflict.Bill Wendling2008-07-071-1/+1
| | | | llvm-svn: 53166
* LegalizeTypes soft-float support for stores of aDuncan Sands2008-07-072-0/+20
| | | | | | float value. llvm-svn: 53165
* Add convenient helper for checking whether global is weak in linker senseAnton Korobeynikov2008-07-051-26/+11
| | | | | | having weak or linkonce or common or extweak LLVM linkage. llvm-svn: 53158
* Override weak stuff during linking of aliases. This fixes PR2463.Anton Korobeynikov2008-07-051-8/+21
| | | | llvm-svn: 53156
* Properly link alias and function decls. This fixes PR2146Anton Korobeynikov2008-07-051-8/+27
| | | | llvm-svn: 53154
* Fix missed optimization opportunity when analyzing cast of mul and select.Nick Lewycky2008-07-051-9/+14
| | | | llvm-svn: 53151
* Fixed generating incorrect aligned stores that I backout of r53031Mon P Wang2008-07-052-12/+19
| | | | | | | | that fixed problems in EmitStackConvert where the source and target type have different alignment by creating a stack slot with the max alignment of source and target type. llvm-svn: 53150
* Several changes to Mips backend, experimental fp support being the mostBruno Cardoso Lopes2008-07-0517-443/+1247
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | important. - Cleanup in the Subtarget info with addition of new features, not all support yet, but they allow the future inclusion of features easier. Among new features, we have : Arch family info (mips1, mips2, ...), ABI info (o32, eabi), 64-bit integer and float registers, allegrex vector FPU (VFPU), single float only support. - TargetMachine now detects allegrex core. - Added allegrex (Mips32r2) sext_inreg instructions. - *Added Float Point Instructions*, handling single float only, and aliased accesses for 32-bit FPUs. - Some cleanup in FP instruction formats and FP register classes. - Calling conventions improved to support mips 32-bit EABI. - Added Asm Printer support for fp cond codes. - Added support for sret copy to a return register. - EABI support added into LowerCALL and FORMAL_ARGS. - MipsFunctionInfo now keeps a virtual register per function to track the sret on function entry until function ret. - MipsInstrInfo FP support into methods (isMoveInstr, isLoadFromStackSlot, ...), FP cond codes mapping and initial FP Branch Analysis. - Two new Mips SDNode to handle fp branch and compare instructions : FPBrcond, FPCmp - MipsTargetLowering : handling different FP classes, Allegrex support, sret return copy, no homing location within EABI, non 32-bit stack objects arguments, and asm constraint for float. llvm-svn: 53146
* Rather than having a different custom legalizationDuncan Sands2008-07-0413-153/+132
| | | | | | | | | | | | hook for each way in which a result type can be legalized (promotion, expansion, softening etc), just use one: ReplaceNodeResults, which returns a node with exactly the same result types as the node passed to it, but presumably with a bunch of custom code behind the scenes. No change if the new LegalizeTypes infrastructure is not turned on. llvm-svn: 53137
* Linux also does not require exception handlingDuncan Sands2008-07-044-6/+1
| | | | | | | | | moves in order to get correct debug info. Since I can't imagine how any target could possibly be any different, I've just stripped out the option: now all the world's like Darwin! llvm-svn: 53134
* Don't return std::vector by value, but pass it in by reference to be filled.Bill Wendling2008-07-032-16/+14
| | | | llvm-svn: 53123
* Revert my previous check-in that split up MachineModuleInfo. It turns out toBill Wendling2008-07-036-650/+831
| | | | | | slow the compiler down at -O0 some 30% or more. Ooops. llvm-svn: 53120
* Backed out 53031.Evan Cheng2008-07-032-19/+12
| | | | llvm-svn: 53110
* Back out 53091 for now.Evan Cheng2008-07-031-2/+1
| | | | llvm-svn: 53109
* Use information already present in the ValueTable to fast-fail when we know ↵Owen Anderson2008-07-031-2/+11
| | | | | | there won't be a value number match. This speeds up GVN on a case where there are very few redundancies by ~25%. llvm-svn: 53108
* Do not try to update dominator info while manipulating CFG. This code does ↵Devang Patel2008-07-031-281/+19
| | | | | | | | not handle all cases and keeps invalid dom info around some cases, which misleads other passes down stream. Right now, dom info is recaluclated in the end if the loop is switched. llvm-svn: 53106
* Remove the ability for ADCE to remove unreachable blocks in loop nests, ↵Owen Anderson2008-07-031-38/+0
| | | | | | because, as Eli pointed out, SimplifyCFG already does this. llvm-svn: 53104
* - Remove calls to copyKillDeadInfo which is an N^2 function. Instead, ↵Evan Cheng2008-07-0314-222/+211
| | | | | | | | propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. llvm-svn: 53097
* Add newline at the end of Constants.cpp.Matthijs Kooijman2008-07-031-1/+1
| | | | llvm-svn: 53092
* llvm-gcc sometimes marks external declarations hidden, because intializers areAnton Korobeynikov2008-07-031-1/+2
| | | | | | | processed separately. Honour such situation and emit PIC relocations properly in such case. llvm-svn: 53091
OpenPOWER on IntegriCloud