summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
Commit message (Collapse)AuthorAgeFilesLines
* Fixed scalarizing an extract subvector and prevent an infinite loopMon P Wang2008-11-061-3/+3
| | | | | | when simplify a vector. llvm-svn: 58820
* The size limit is for individual arrays. So if any array has more than 8 bytesBill Wendling2008-11-061-5/+3
| | | | | | in it, then emit stack protectors. llvm-svn: 58819
* Don't recalculate the stack position of the stack protector.Bill Wendling2008-11-061-0/+2
| | | | llvm-svn: 58815
* Emit label for llvm.dbg.func.start of the inlined function.Devang Patel2008-11-061-3/+8
| | | | llvm-svn: 58814
* Formating/comment changes - no functionality change.Duncan Sands2008-11-061-13/+8
| | | | llvm-svn: 58801
* - Rename stackprotector_{prologue,epilogue} to stackprotector_{create,check}.Bill Wendling2008-11-063-7/+5
| | | | | | | - Get rid of "HasStackProtector" in MachineFrameInfo. - Modify intrinsics to tell which are doing what with memory. llvm-svn: 58799
* Widening cleanupMon P Wang2008-11-063-21/+20
| | | | llvm-svn: 58796
* Adjust the stack protector heuristic to care about only arrays or calls toBill Wendling2008-11-061-1/+9
| | | | | | "alloca". llvm-svn: 58792
* Implement the stack protector stack accesses via intrinsics:Bill Wendling2008-11-063-9/+81
| | | | | | | | | | | | - stackprotector_prologue creates a stack object and stores the guard there. - stackprotector_epilogue reads the stack guard from the stack position created by stackprotector_prologue. - The PrologEpilogInserter was changed to make sure that the stack guard is first on the stack frame. llvm-svn: 58791
* Emit label for llvm.dbg.func.start of the inlined function.Devang Patel2008-11-061-3/+6
| | | | llvm-svn: 58786
* Fix thinko in ppcf128 expansion of truncating store.Duncan Sands2008-11-051-1/+1
| | | | llvm-svn: 58753
* Type of shuffle mask has changed.Evan Cheng2008-11-051-1/+2
| | | | llvm-svn: 58751
* 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
OpenPOWER on IntegriCloud