- Apr 05, 2008
-
-
Evan Cheng authored
2. Coalescer can now create an interesting situation where a register def can reaches itself without being killed. llvm-svn: 49246
-
Dale Johannesen authored
before an invoke. Failure to do this causes references in the landing pad to variables that were not set. Fixes g++.dg/eh/delayslot1.C g++.dg/eh/fp-regs.C g++.old-deja/g++.brendan/eh1.C llvm-svn: 49243
-
- Apr 04, 2008
-
-
Evan Cheng authored
llvm-svn: 49198
-
Evan Cheng authored
llvm-svn: 49197
-
- Apr 03, 2008
-
-
Andrew Lenharth authored
if some functions don't have debug info, we were outputing the same label at the start of each of those functions. This makes assemblers unhappy llvm-svn: 49176
-
Evan Cheng authored
- Be smarter about coalescing copies from implicit_def. llvm-svn: 49168
-
Evan Cheng authored
llvm-svn: 49167
-
Evan Cheng authored
- Eliminate an implicit_def when it's being spilled. llvm-svn: 49166
-
Evan Cheng authored
- Be (slightly) smarter about where to place the copies. llvm-svn: 49165
-
Evan Cheng authored
There is no point in creating a long live range defined by an implicit_def. Scheduler now duplicates implicit_def instruction for each of its uses. Therefore, if an implicit_def node has multiple uses, it will become a number of very short live ranges, rather than a long one. This will make coalescer's job easier. llvm-svn: 49164
-
Evan Cheng authored
llvm-svn: 49124
-
- Apr 02, 2008
-
-
Dale Johannesen authored
StripSymbols when EH is on. llvm-svn: 49110
-
Evan Cheng authored
Now that I am told MachineRegisterInfo also tracks physical register uses / defs, I can do away with the horribleness I introduced a while back. It's impossible to detect if there is any use of a physical register below an instruction (and before any def of the register) with some cheap book keeping. llvm-svn: 49105
-
Evan Cheng authored
llvm-svn: 49099
-
Dale Johannesen authored
llvm-svn: 49096
-
Owen Anderson authored
node and its inputs. llvm-svn: 49070
-
Owen Anderson authored
unknown defining inst after PHI elimination. llvm-svn: 49069
-
Dale Johannesen authored
review feedback. -enable-eh is still accepted but doesn't do anything. EH intrinsics use Dwarf EH if the target supports that, and are handled by LowerInvoke otherwise. The separation of the EH table and frame move data is, I think, logically figured out, but either one still causes full EH info to be generated (not sure how to split the metadata correctly). MachineModuleInfo::needsFrameInfo is no longer used and is removed. llvm-svn: 49064
-
- Apr 01, 2008
-
-
Evan Cheng authored
llvm-svn: 49053
-
Dale Johannesen authored
llvm-svn: 49046
-
Owen Anderson authored
llvm-svn: 49043
-
Evan Cheng authored
llvm-svn: 49016
-
Evan Cheng authored
llvm-svn: 49014
-
Evan Cheng authored
llvm-svn: 49013
-
Evan Cheng authored
llvm-svn: 49012
-
Dale Johannesen authored
not marked nounwind, or for all functions when -enable-eh is set, provided the target supports Dwarf EH. llvm-gcc generates nounwind in the right places; other FEs will need to do so also. Given such a FE, -enable-eh should no longer be needed. llvm-svn: 49006
-
Evan Cheng authored
llvm-svn: 49002
-
- Mar 31, 2008
-
-
Evan Cheng authored
llvm-svn: 48995
-
Dan Gohman authored
llvm-svn: 48994
-
Evan Cheng authored
The support for remat of instructions with a register operand is hackish, to say the least. Since the register operand guaranteed to be PIC base and that it is already live at all uses, we are making sure it will not be spilled after its uses are rematerialized for both performance and correctness reasons. llvm-svn: 48976
-
Owen Anderson authored
llvm-svn: 48973
-
- Mar 30, 2008
-
-
Chris Lattner authored
patch by David Chisnall. llvm-svn: 48963
-
- Mar 29, 2008
-
-
Evan Cheng authored
llvm-svn: 48947
-
Owen Anderson authored
Remove some unneeded code for LiveInterval joining, and fix a bug in the Phi elimination algorithm where we were accidentally reasoning about the source rather than the destination. llvm-svn: 48936
-
- Mar 28, 2008
-
-
Chris Lattner authored
llvm-svn: 48916
-
Duncan Sands authored
llvm-svn: 48914
-
Evan Cheng authored
llvm-svn: 48908
-
- Mar 27, 2008
-
-
Duncan Sands authored
In order to handle indexed nodes I had to introduce a new constructor, and since I was there I factorized the code in the various load constructors. llvm-svn: 48894
-
Dan Gohman authored
nodes. This doesn't currently have much impact the generated code, but it does produce simpler-looking SelectionDAGs, and consequently simpler-looking ScheduleDAGs, because there are fewer spurious dependencies. In particular, CopyValueToVirtualRegister now uses the entry node as the input chain dependency for new CopyToReg nodes instead of calling getRoot and depending on the most recent memory reference. Also, rename UnorderedChains to PendingExports and pull it up from being a local variable in SelectionDAGISel::BuildSelectionDAG to being a member variable of SelectionDAGISel, so that it doesn't have to be passed around to all the places that need it. llvm-svn: 48893
-
Roman Levenstein authored
llvm-svn: 48873
-