Commit Graph

26518 Commits

Author SHA1 Message Date
Evan Cheng 7f3f0973e6 Clean up.
llvm-svn: 30140
2006-09-07 01:17:57 +00:00
Chris Lattner 0b5fb52b0e testcase, ensure this never breaks.
llvm-svn: 30137
2006-09-06 21:54:59 +00:00
Evan Cheng 4c7a3fbdea Watch out for variable_ops instructions.
llvm-svn: 30135
2006-09-06 20:32:45 +00:00
Evan Cheng ac22e54131 Variable ops instructions may ignore the last few operands for code emission.
llvm-svn: 30134
2006-09-06 20:24:14 +00:00
Devang Patel 483872338a Document getTargetTriple().
llvm-svn: 30133
2006-09-06 20:22:55 +00:00
Devang Patel 5561aa7271 Add getTargetTriple() that linker can use to query target architecture.
llvm-svn: 30132
2006-09-06 20:16:28 +00:00
Jim Laskey ef94ebb666 Oops - forgot to update banner.
llvm-svn: 30131
2006-09-06 19:21:41 +00:00
Devang Patel ee9f617cff Keep track of all modules crated using a name to module map.
Add private member function getMoudle().

llvm-svn: 30130
2006-09-06 18:50:26 +00:00
Bill Wendling d495bd075a Cleaned up some of the grammar in the Live Intervals section. Removed the
huge honking FIXME comment. I'll address the "Live Intervals Analysis"
section soon.

llvm-svn: 30129
2006-09-06 18:42:41 +00:00
Jim Laskey 55381e04e6 Update project with new files.
llvm-svn: 30128
2006-09-06 18:38:54 +00:00
Jim Laskey 681ecbb3b3 Separate target specifc asm properties from asm printers.
llvm-svn: 30127
2006-09-06 18:35:33 +00:00
Jim Laskey a6211dcdad Separate target specific asm properties from the asm printers.
llvm-svn: 30126
2006-09-06 18:34:40 +00:00
Rafael Espindola abd8bcbe5e add the orr instruction
llvm-svn: 30125
2006-09-06 18:03:12 +00:00
Devang Patel 95b7c7af2e Instead of demangling symbol name by hand, use original name, which was
used to mangle symbol name, directly.

llvm-svn: 30124
2006-09-06 00:45:52 +00:00
Devang Patel e3b9490b05 Extract target triplet from optimized module.
Untabify.

llvm-svn: 30123
2006-09-06 00:28:22 +00:00
Evan Cheng ddfb10b5af Only call isUse/isDef on register operands
llvm-svn: 30122
2006-09-05 20:32:06 +00:00
Chris Lattner 2656932979 Bugfix to work with the two-addr changes that have been made in the tree recently
llvm-svn: 30121
2006-09-05 20:27:32 +00:00
Chris Lattner 65df0ffadd make this harder
llvm-svn: 30120
2006-09-05 20:27:06 +00:00
Evan Cheng 6509c248f3 IsDef can only be accessed / set if operand is a register.
llvm-svn: 30119
2006-09-05 20:20:04 +00:00
Chris Lattner 2cb238320d Only call isUse/isDef on register operands
llvm-svn: 30118
2006-09-05 20:19:27 +00:00
Chris Lattner 45456d44e3 Don't call isDef on non-registers
llvm-svn: 30117
2006-09-05 20:02:51 +00:00
Evan Cheng fd500a27f2 Initialize IsDef of all non-register MachineOperand to false.
llvm-svn: 30116
2006-09-05 18:56:02 +00:00
Chris Lattner 845b223da4 Fix Duraid's changes to work when TLI is null. This fixes the failing
lowerinvoke regtests.

llvm-svn: 30115
2006-09-05 17:48:07 +00:00
Chris Lattner 0dce3311c4 Change the default to 0, which means 'default'.
llvm-svn: 30114
2006-09-05 17:39:15 +00:00
Evan Cheng 7a150d3113 Fix a few dejagnu failures. e.g. fast-cc-merge-stack-adj.ll
llvm-svn: 30113
2006-09-05 08:32:49 +00:00
Evan Cheng 17c28b2e0e JIT encoding bug.
llvm-svn: 30112
2006-09-05 05:59:25 +00:00
Chris Lattner a2d7d1c4fa Fix JIT encoding of two-addr instructions.
llvm-svn: 30111
2006-09-05 03:01:52 +00:00
Chris Lattner e3d2e1e41e Update the X86 JIT to make it work with the new two-addr changes. This also
adds assertions that check to make sure every operand gets emitted.

llvm-svn: 30110
2006-09-05 02:52:35 +00:00
Chris Lattner af23f9b5f6 Completely eliminate def&use operands. Now a register operand is EITHER a
def operand or a use operand.

llvm-svn: 30109
2006-09-05 02:31:13 +00:00
Chris Lattner 13a5dcddce Fix a long-standing wart in the code generator: two-address instruction lowering
actually *removes* one of the operands, instead of just assigning both operands
the same register.  This make reasoning about instructions unnecessarily complex,
because you need to know if you are before or after register allocation to match
up operand #'s with the target description file.

Changing this also gets rid of a bunch of hacky code in various places.

This patch also includes changes to fold loads into cmp/test instructions in
the X86 backend, along with a significant simplification to the X86 spill
folding code.

llvm-svn: 30108
2006-09-05 02:12:02 +00:00
Andrew Lenharth 3852b2ce7e jmp_bufs are this big on alpha.
llvm-svn: 30107
2006-09-05 00:22:25 +00:00
Bill Wendling bb902cf0b9 First draft of the "Live Interval Analysis" section. This is the "Live
Variable Analysis" pass.

llvm-svn: 30106
2006-09-04 23:35:52 +00:00
Chris Lattner af87314781 ADd getImm/setImm methods
llvm-svn: 30105
2006-09-04 23:35:22 +00:00
Chris Lattner 22f29396db Add some short-hand accessors
llvm-svn: 30104
2006-09-04 23:05:29 +00:00
Rafael Espindola 8386105f3f add support for returning 64bit values
llvm-svn: 30103
2006-09-04 19:05:01 +00:00
Chris Lattner 49c45d3a13 Fix some X86 JIT failures. This should really come from TargetJITInfo.
llvm-svn: 30102
2006-09-04 18:48:41 +00:00
Chris Lattner af726fe9d5 lli uses LinkAllCodegenComponents, so it needs this. Thanks to
Rafael Esp?ndola for pointing this out

llvm-svn: 30100
2006-09-04 18:34:16 +00:00
Chris Lattner 1eed04d1fb Correct fix for a crasher on functions with live in values
llvm-svn: 30099
2006-09-04 18:27:40 +00:00
Chris Lattner bff0b5969f Hack around a regression I introduced yesterday
llvm-svn: 30098
2006-09-04 18:20:15 +00:00
Duraid Madina 373be1d1a2 forgot this
llvm-svn: 30097
2006-09-04 07:44:11 +00:00
Chris Lattner a5d27b19e1 Fix a build problem
llvm-svn: 30096
2006-09-04 06:39:52 +00:00
Duraid Madina cf6749e4c0 add setJumpBufSize() and setJumpBufAlignment() to target-lowering.
Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example

llvm-svn: 30095
2006-09-04 06:21:35 +00:00
Chris Lattner a59bee75a7 Update this to reflect llvm-config usage
llvm-svn: 30094
2006-09-04 06:12:14 +00:00
Chris Lattner 79baf1ee7c Remove some dead makefilery
llvm-svn: 30093
2006-09-04 06:07:12 +00:00
Chris Lattner e63072ea0a Use llvm-config to determine what to link in
llvm-svn: 30092
2006-09-04 06:04:03 +00:00
Chris Lattner 3b78c704d1 Use llvm-config instead of magic JIT thing to link in libs
llvm-svn: 30091
2006-09-04 06:01:43 +00:00
Chris Lattner 28689ff2d0 Use LINK_COMPONENTS to specify *components* to link against instead of
using USED_LIBS to specify *libraries* to link against.

llvm-svn: 30090
2006-09-04 05:59:09 +00:00
Chris Lattner 2d4cae9896 Allow things like --libs CBackend
llvm-svn: 30089
2006-09-04 05:35:23 +00:00
Chris Lattner 956f73bdfa Switch to using llvm-config to build
llvm-svn: 30088
2006-09-04 05:24:16 +00:00
Chris Lattner 68c9754e76 Bugfix for llvm-config support
llvm-svn: 30087
2006-09-04 05:23:20 +00:00