summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/X86/X86MachineFunctionInfo.h
Commit message (Collapse)AuthorAgeFilesLines
* Move per-function state out of TargetLowering subclasses and intoDan Gohman2010-04-171-3/+33
| | | | | | MachineFunctionInfo subclasses. llvm-svn: 101634
* Fix PR6696 and PR6663Jim Grosbach2010-04-061-1/+9
| | | | | | | | | | | | | | | | | When a frame pointer is not otherwise required, and dynamic stack alignment is necessary solely due to the spilling of a register with larger alignment requirements than the default stack alignment, the frame pointer can be both used as a general purpose register and a frame pointer. That goes poorly, for obvious reasons. This patch brings back a bit of old logic for identifying the use of such registers and conservatively reserves the frame pointer during register allocation in such cases. For now, implement for X86 only since it's 32-bit linux which is hitting this, and we want a targeted fix for 2.7. As a follow-on, this will be expanded to handle other targets, as theoretically the problem could arise elsewhere as well. llvm-svn: 100559
* Cleanup stdcall / fastcall name mangling.Anton Korobeynikov2010-02-121-15/+0
| | | | | | This should fix alot of problems we saw so far, e.g. PRs 5851 & 2936 llvm-svn: 95980
* Do not emit callseq instructions around sibcalls. This eliminated some ↵Evan Cheng2010-02-061-3/+2
| | | | | | unnecessary stack adjustments. llvm-svn: 95475
* Add explicit keywords.Dan Gohman2009-06-051-8/+9
| | | | llvm-svn: 72969
* Fix X86MachineFunctionInfo's doxygen comment.Dan Gohman2009-04-151-2/+3
| | | | llvm-svn: 69127
* Switch the MachineOperand accessors back to the short names likeDan Gohman2008-10-031-2/+3
| | | | | | isReg, etc., from isRegister, etc. llvm-svn: 57006
* Move the GlobalBaseReg field out of X86ISelDAGToDAG.cppDan Gohman2008-09-301-2/+11
| | | | | | | | and X86FastISel.cpp into X86MachineFunction.h, so that it can be shared, instead of having each selector keep track of its own. llvm-svn: 56825
* Implement an x86-64 ABI detail of passing structs by hidden firstDan Gohman2008-04-211-2/+12
| | | | | | | | | | | argument. The x86-64 ABI requires the incoming value of %rdi to be copied to %rax on exit from a function that is returning a large C struct. Also, add a README-X86-64 entry detailing the missed optimization opportunity and proposing an alternative approach. llvm-svn: 50075
* Combine MovePCtoStack + POP32r into one instruction MOVPC32r so it can be ↵Evan Cheng2008-01-051-8/+8
| | | | | | moved if needed. llvm-svn: 45605
* Remove attribution from file headers, per discussion on llvmdev.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45418
* Added tail call optimization to the x86 back end. It can beArnold Schwaighofer2007-10-111-2/+13
| | | | | | | | | | | enabled by passing -tailcallopt to llc. The optimization is performed if the following conditions are satisfied: * caller/callee are fastcc * elf/pic is disabled OR elf/pic enabled + callee is in module + callee has visibility protected or hidden llvm-svn: 42870
* Move ReturnAddrIndex variable to X86MachineFunctionInfo structure. This fixedAnton Korobeynikov2007-08-151-4/+10
| | | | | | hard to catch bugs with retaddr lowering llvm-svn: 41104
* Use push / pop for prologues and epilogues.Evan Cheng2007-07-171-0/+9
| | | | llvm-svn: 39967
* rename X86FunctionInfo to X86MachineFunctionInfo to match the header fileChris Lattner2007-04-171-8/+8
| | | | | | it is defined in. llvm-svn: 36196
* Various random and minor code cleanups.Chris Lattner2006-09-261-1/+1
| | | | llvm-svn: 30608
* Adding codegeneration for StdCall & FastCall calling conventionsAnton Korobeynikov2006-09-201-5/+34
| | | | llvm-svn: 30549
* Comments to appease sabre.Evan Cheng2006-06-091-1/+7
| | | | llvm-svn: 28737
* Added X86FunctionInfo subclass of MachineFunction to record whether theEvan Cheng2006-06-061-0/+30
function that is being lowered is forced to use FP. Currently this is only true for main() / Cygwin. llvm-svn: 28703
OpenPOWER on IntegriCloud