summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Remove dead variable.Bill Wendling2008-11-051-1/+0
| | | | llvm-svn: 58741
* Simplify the allocated size calculation.Bill Wendling2008-11-051-3/+3
| | | | llvm-svn: 58740
* Fix commentBill Wendling2008-11-051-1/+2
| | | | llvm-svn: 58739
* Use the new predicate to control when we do prealloc splitting. Fix a small ↵Owen Anderson2008-11-051-1/+5
| | | | | | bug. llvm-svn: 58738
* Some code simplification. It now doesn't generate a prologue if the epilogueBill Wendling2008-11-051-61/+47
| | | | | | isn't going to be generated. llvm-svn: 58734
* Small simplification of the stack guard type.Bill Wendling2008-11-041-4/+3
| | | | llvm-svn: 58728
* - Add a "getOrInsertGlobal" method to the Module class. This acts similarly toBill Wendling2008-11-041-14/+11
| | | | | | | | | | "getOrInsertFunction" in that it either adds a new declaration of the global and returns it, or returns the current one -- optionally casting it to the correct type. - Use the new getOrInsertGlobal in the stack protector code. - Use "splitBasicBlock" in the stack protector code. llvm-svn: 58727
* First pass at checking for the creation of a new join point when doing ↵Owen Anderson2008-11-041-0/+73
| | | | | | pre-alloc splitting. This is not turned on yet. llvm-svn: 58726
* Update in response to feedback from Chris:Bill Wendling2008-11-042-32/+47
| | | | | | | | | | | | | | | | | - Use enums instead of magic numbers. - Rework algorithm to use the bytes size from the target to determine when to emit stack protectors. - Get rid of "propolice" in any comments. - Renamed an option to its expanded form. - Other miscellanenous changes. More changes will come after this. llvm-svn: 58723
* 80 columnsDale Johannesen2008-11-041-2/+2
| | | | llvm-svn: 58717
* Fix typo. Patch by nlewycky.Duncan Sands2008-11-041-1/+1
| | | | llvm-svn: 58709
* Fix PR3011: LegalizeTypes support for scalarizingDuncan Sands2008-11-042-0/+10
| | | | | | SELECT_CC. llvm-svn: 58706
* fix leakage of IfcvtTokensNuno Lopes2008-11-041-1/+5
| | | | llvm-svn: 58690
* CMake: Updated list of source files.Oscar Fuentes2008-11-041-0/+1
| | | | llvm-svn: 58676
* Initial checkin for stack protectors. Here's what it does:Bill Wendling2008-11-042-0/+235
| | | | | | | | | | | | | | | | * The prologue is modified to read the __stack_chk_guard global and insert it onto the stack. * The epilogue is modified to read the stored guard from the stack and compare it to the original __stack_chk_guard value. If they differ, then the __stack_chk_fail() function is called. * The stack protector needs to be first on the stack (after the parameters) to catch any stack-smashing activities. Front-end support will follow after a round of beta testing. llvm-svn: 58673
* Fix some ppcf128 regressions: make ExpandFloatRes_LOADDale Johannesen2008-11-031-8/+8
| | | | | | | work correctly, and bring over a late change to ppcf128 SetCC handling. llvm-svn: 58642
* Make VAARG promotion work correctly with large funkyDuncan Sands2008-11-031-19/+27
| | | | | | | | | | | | | | | | | sized integers like i129, and also reduce the number of assumptions made about how vaarg is implemented. This still doesn't work correctly for small integers like (eg) i1 on x86, since x86 passes each of them (essentially an i8) in a 4 byte stack slot, so the pointer needs to be advanced by 4 bytes not by 1 byte as now. But this is no longer a LegalizeTypes problem (it was also wrong in LT before): it is a bug in the operation expansion in LegalizeDAG: now LegalizeTypes turns an i1 vaarg into an i8 vaarg which would work fine if only the i8 vaarg was turned into correct code later. llvm-svn: 58635
* Make VAARG work with x86 long double (which isDuncan Sands2008-11-031-3/+3
| | | | | | 10 bytes long, but is passed in 12/16 bytes). llvm-svn: 58608
* Make MachineFrameInfo::print not crash when no TargetFrameInfo is available.Matthijs Kooijman2008-11-031-1/+2
| | | | llvm-svn: 58606
* Revert my last patch until I consult with Evan about it.Owen Anderson2008-11-031-10/+0
| | | | llvm-svn: 58591
* Don't do pre-splitting if doing so would create a value join that did notOwen Anderson2008-11-021-0/+10
| | | | | | | | | exist before. Updating the live intervals in that care is tricky in the general case. Evan, if you see a tighter guard condition for this, let me know. llvm-svn: 58560
* Added interface to allow clients to create a MemIntrinsicNode forMon P Wang2008-11-011-4/+17
| | | | | | target intrinsics that touches memory llvm-svn: 58548
* Invalidate debug/eh/gc labels when unreachable MBB is deleted.Anton Korobeynikov2008-10-311-13/+27
| | | | | | Based on patch by Martin Nowack! llvm-svn: 58536
* Remove some unused virtual function bodies.Dan Gohman2008-10-311-7/+5
| | | | llvm-svn: 58524
* Revert r58489. It isn't correct for all cases.Bill Wendling2008-10-311-2/+2
| | | | llvm-svn: 58523
* Add a fixme.Evan Cheng2008-10-311-0/+3
| | | | llvm-svn: 58514
* Add a bunch of libcalls for ppcf128 that were somehowDuncan Sands2008-10-313-38/+249
| | | | | | completely forgotten about when writing LegalizeTypes. llvm-svn: 58508
* Don't skip over all "terminator" instructions when determining where to put theBill Wendling2008-10-311-2/+2
| | | | | | | callee-saved restore code. It could skip over conditional jumps accidentally. Instead, just skip the "return" instructions. llvm-svn: 58489
* Fix PR2986: do not use a potentially illegalDuncan Sands2008-10-301-1/+6
| | | | | | | | | | type for the shift amount type. Add a check that shifts and rotates use the type returned by getShiftAmountTy for the amount. This exposed some problems in CellSPU and PPC, which have already been fixed. llvm-svn: 58455
* Add missing vsetcc expansion for wideningMon P Wang2008-10-301-1/+12
| | | | llvm-svn: 58443
* Add initial support for vector widening. Logic is set to widen for X86.Mon P Wang2008-10-303-29/+876
| | | | | | | One will only see an effect if legalizetype is not active. Will move support to LegalizeType soon. llvm-svn: 58426
* Uniformize capitalization of NodeId.Duncan Sands2008-10-292-12/+12
| | | | llvm-svn: 58386
* Fix PR2977: LegalizeTypes support for expandingDuncan Sands2008-10-294-0/+20
| | | | | | VAARG. llvm-svn: 58379
* Add sanity checking for BUILD_PAIR (I noticed theDuncan Sands2008-10-292-7/+24
| | | | | | | | | other day that PPC custom lowering could create a BUILD_PAIR of two f64 with a result type of... f64! - already fixed). Fix a place that triggers the sanity check. llvm-svn: 58378
* - More pre-split fixes: spill slot live interval computation bug; restore ↵Evan Cheng2008-10-292-39/+94
| | | | | | | | point bug. - If a def is spilt, remember its spill index to allow its reuse. llvm-svn: 58375
* Fix a FIXME: in ReplaceNodeWith, if the new nodeDuncan Sands2008-10-292-87/+108
| | | | | | | | | | | | | | | | | | | | | is morphed by AnalyzeNewNode into a previously processed node, and different result values of that node are remapped to values with different nodes, then we could end up using wrong values here [we were assuming that all results remap to values with the same underlying node]. This seems theoretically possible, but I don't have a testcase. The meat of the patch is in the changes to AnalyzeNewNode/AnalyzeNewValue and ReplaceNodeWith. While there, I changed names like RemapNode to RemapValue, since it really remaps values. To tell the truth, I would be much happier if we were only remapping nodes (it would simplify a bunch of logic, and allow for some cute speedups) but I haven't yet worked out how to do that. llvm-svn: 58372
* Fix 80 column violations.Duncan Sands2008-10-291-2/+2
| | | | llvm-svn: 58371
* Fix 80 column violations.Duncan Sands2008-10-291-5/+10
| | | | llvm-svn: 58370
* - Rewrite code that update register live interval that's split.Evan Cheng2008-10-293-85/+177
| | | | | | | - Create and update spill slot live intervals. - Lots of bug fixes. llvm-svn: 58367
* Take Chris' suggestion and define EnableFastISelVerbose andDan Gohman2008-10-281-8/+3
| | | | | | | EnableFastISelAbort variables for Release mode instead of using ifdefs in the code. llvm-svn: 58350
* Protect the code for fast-isel debugging with #ifndef NDEBUG.Dan Gohman2008-10-281-0/+10
| | | | llvm-svn: 58340
* Fix darwin ppc llvm-gcc build breakage: interceptDuncan Sands2008-10-281-0/+35
| | | | | | | | | | ppcf128 to i32 conversion and expand it into a code sequence like in LegalizeDAG. This needs custom ppc lowering of FP_ROUND_INREG, so turn that on and make it work with LegalizeTypes. Probably PPC should simply custom lower the original conversion. llvm-svn: 58329
* Fix a testcase provided by Bill in which the nodeDuncan Sands2008-10-282-30/+37
| | | | | | | | id could end up being wrong mostly because of forgetting to remap new nodes that morphed into processed nodes through CSE. llvm-svn: 58323
* Don't produce invalid comparisons after legalize.Chris Lattner2008-10-281-2/+4
| | | | llvm-svn: 58320
* fix some whitespace stuffChris Lattner2008-10-281-3/+3
| | | | llvm-svn: 58319
* If def is in the same mbb as the barrier, spilt the value after the last use ↵Evan Cheng2008-10-281-8/+18
| | | | | | before the barrier. llvm-svn: 58314
* Add command line option to limit the number splits to help debugging.Evan Cheng2008-10-281-3/+7
| | | | llvm-svn: 58312
* Avoid putting a split past the end of the live range; always shrink wrap ↵Evan Cheng2008-10-281-11/+20
| | | | | | live interval in the barrier mbb. llvm-svn: 58309
* Silence a bogus compile time warning.Evan Cheng2008-10-271-1/+1
| | | | llvm-svn: 58297
* Remove val# defined by a remat'ed def that is now dead.Evan Cheng2008-10-273-2/+33
| | | | llvm-svn: 58294
OpenPOWER on IntegriCloud