Chris Lattner
70881971d2
make pcrel and non-pcrel global printing more similar.
...
llvm-svn: 75298
2009-07-10 21:57:21 +00:00
Evan Cheng
94967abfe3
Undo my brain cramp.
...
llvm-svn: 75290
2009-07-10 21:31:42 +00:00
Chris Lattner
1781e322d7
code model is never set to default.
...
llvm-svn: 75278
2009-07-10 21:03:06 +00:00
Chris Lattner
4b7ff8e0c0
fix indentation
...
llvm-svn: 75277
2009-07-10 21:01:59 +00:00
Chris Lattner
478fc8442b
remove the now-dead TM argument to these methods.
...
llvm-svn: 75276
2009-07-10 21:00:45 +00:00
Chris Lattner
9c13214ee8
make PIC vs DynamicNoPIC be explicit in PICStyles.
...
llvm-svn: 75275
2009-07-10 20:58:47 +00:00
Chris Lattner
933108f921
some minor simplifications.
...
llvm-svn: 75274
2009-07-10 20:53:38 +00:00
Chris Lattner
9deef50410
add a couple of predicates to test for "stub style pic in PIC mode" and "stub style pic in dynamic-no-pic" mode.
...
llvm-svn: 75273
2009-07-10 20:47:30 +00:00
Evan Cheng
7f57128609
CMOVxx doesn't swap operands which it's commuted.
...
llvm-svn: 75266
2009-07-10 19:26:57 +00:00
Chris Lattner
e5b9e93e19
make this more like printOperand. Perhaps some merging will happen
...
tomorrow.
llvm-svn: 75245
2009-07-10 07:50:52 +00:00
Chris Lattner
6097f82e18
simplify fast isel by using ClassifyGlobalReference. This
...
elimiantes the last use of GVRequiresExtraLoad, so delete it.
llvm-svn: 75244
2009-07-10 07:48:51 +00:00
Chris Lattner
7c038a2b3c
eliminate GVRequiresRegister, replacing it with predicates we
...
need for other purposes.
llvm-svn: 75243
2009-07-10 07:38:24 +00:00
Chris Lattner
e4e0c73ed0
change a bunch of logic in LowerGlobalAddress to leverage the work
...
done in ClassifyGlobalReference instead of reconstructing the info
awkwardly.
llvm-svn: 75240
2009-07-10 07:34:39 +00:00
Chris Lattner
a785e01d31
add a predicate to determine if a global var reference requires a
...
PIC-base to be added in.
llvm-svn: 75238
2009-07-10 07:33:30 +00:00
Chris Lattner
0cae8c7845
move some classification logic around. Now GVRequiresExtraLoad
...
is just a trivial wrapper around "ClassifyGlobalReference", which
stole a ton of logic from LowerGlobalAddress.
llvm-svn: 75237
2009-07-10 07:20:05 +00:00
Chris Lattner
4e8de888f2
change isGlobalStubReference to take target flags instead of a MachineOperand.
...
llvm-svn: 75236
2009-07-10 06:29:59 +00:00
Chris Lattner
c4e0e9c987
convert some late code (called by regalloc and code emission)
...
to use isGlobalStubReference instead of GVRequiresExtraLoad
(which should really be part of isel).
llvm-svn: 75234
2009-07-10 06:07:08 +00:00
Chris Lattner
a607a9c046
add a new predicate method that says whether a GlobalValue
...
MachineOperand is a reference to a stub, not a reference to the
global variable itself. Look no context needed!
llvm-svn: 75233
2009-07-10 06:06:17 +00:00
Chris Lattner
41fccd30b7
GVRequiresExtraLoad is now never used for calls, simplify it based on this.
...
llvm-svn: 75232
2009-07-10 05:52:02 +00:00
Chris Lattner
832a724072
actually, just eliminate PCRelGVRequiresExtraLoad. It makes the code
...
more complex and slow than just directly testing what we care about.
llvm-svn: 75231
2009-07-10 05:48:03 +00:00
Chris Lattner
2161376696
There is only one case where GVRequiresExtraLoad returns true for calls:
...
split its handling out to PCRelGVRequiresExtraLoad, and simplify code
based on this.
llvm-svn: 75230
2009-07-10 05:45:15 +00:00
Chris Lattner
2e5e403f53
the "isDirectCall" operand of GVRequiresRegister is always false, eliminate it.
...
llvm-svn: 75229
2009-07-10 05:37:11 +00:00
Chris Lattner
faa8001b62
split call handling out of X86SelectAddress into X86SelectCallAddress
...
llvm-svn: 75228
2009-07-10 05:33:42 +00:00
Chris Lattner
fb8ee5d85a
convert a helper method to be a static function instead of a
...
template. Also convert it to take a MachineOperand instead of a GV*
llvm-svn: 75227
2009-07-10 05:27:43 +00:00
Bill Wendling
4b9c615e09
If -fomit-frame-pointer is used, we still need to record when the %esp register
...
is modified. Otherwise, the unwinder will get confused. The old code (before I
started my hacking) did this. It dropped on the floor, because I wasn't aware of
this requirement.
On the plus side, if we use "alloca" in a function, we create frame pointers
even with -fomit-frame-pointer is enabled!
This is a Good Thing(tm)!!!
llvm-svn: 75183
2009-07-09 22:30:02 +00:00
Dale Johannesen
faa5bcf31d
Handle 'A' modifier in inline asms.
...
gcc.apple/asm-block-13.c
gcc.apple/asm-block-57.c
llvm-svn: 75169
2009-07-09 20:06:27 +00:00
Owen Anderson
8970999512
Thread LLVMContext through MVT and related parts of SDISel.
...
llvm-svn: 75153
2009-07-09 17:57:24 +00:00
Eli Friedman
b34a153606
Misc encoding fixes; reported on llvmdev.
...
llvm-svn: 75142
2009-07-09 16:49:25 +00:00
Chris Lattner
7fcfc81604
simplify this logic a bit more.
...
llvm-svn: 75118
2009-07-09 07:02:30 +00:00
Chris Lattner
1614fd5095
move reasoning about darwin $non_lazy_ptr stubs from asmprinter into
...
isel.
llvm-svn: 75117
2009-07-09 06:59:17 +00:00
Evan Cheng
4f87295872
Targets sometimes assign fixed stack object to spill certain callee-saved
...
registers based on dynamic conditions. For example, X86 EBP/RBP, when used as
frame register has to be spilled in the first fixed object. It should inform
PEI this so it doesn't get allocated another stack object. Also, it should not
be spilled as other callee-saved registers but rather its spilling and restoring
are being handled by emitPrologue and emitEpilogue. Avoid spilling it twice.
llvm-svn: 75116
2009-07-09 06:53:48 +00:00
Chris Lattner
9feb73cd75
rearrange some code, no functionality change.
...
llvm-svn: 75113
2009-07-09 06:41:35 +00:00
Chris Lattner
36eaa356a4
make direct calls set MO_PLT or MO_DARWIN_STUB as appropriate with fast isel.
...
llvm-svn: 75112
2009-07-09 06:34:26 +00:00
Chris Lattner
5367b4a5bd
reduce nesting by rearranging branches.
...
llvm-svn: 75110
2009-07-09 05:55:04 +00:00
Chris Lattner
f6ad5e86c4
make isel use MO_PIC_BASE_OFFSET when lowering globalvalues on darwin in pic
...
mode, instead of having asmprinter just "know" to print them.
llvm-svn: 75109
2009-07-09 05:47:33 +00:00
Chris Lattner
c58c66f250
various minor cleanups, no functionality change.
...
llvm-svn: 75108
2009-07-09 05:42:07 +00:00
Chris Lattner
f42a8c82d9
make isel decide whether to emit $stub's on darwin instead of asmprinter.
...
llvm-svn: 75107
2009-07-09 05:27:35 +00:00
Chris Lattner
e144356fba
pc-relative references are *always* to functions, never to globals. ISel
...
is incapable of lowering direct references to globals like this, zap the code.
llvm-svn: 75106
2009-07-09 05:19:23 +00:00
Chris Lattner
ec30d37e60
make cygwin use its own stubs set, instead of overloading a darwin one.
...
llvm-svn: 75105
2009-07-09 05:09:24 +00:00
Chris Lattner
06266970b0
Make isel determine where to emit PLT-relative calls instead of having
...
asmprinter do it.
llvm-svn: 75104
2009-07-09 05:02:21 +00:00
Chris Lattner
2e128cac89
isPICStyleStub() is now never true in -static mode, so simplify code.
...
llvm-svn: 75102
2009-07-09 04:43:12 +00:00
Chris Lattner
76adfe755d
simplify some code based on the fact that picstyles != none are only valid
...
in pic or dynamic-no-pic mode. Also, x86-64 never used picstylegot.
llvm-svn: 75101
2009-07-09 04:39:06 +00:00
Chris Lattner
0ee57926e4
all this logic always returns true because GOT mode is never active in x86-64 mode.
...
Simplify it away, someone should evaluate this.
llvm-svn: 75100
2009-07-09 04:27:47 +00:00
Chris Lattner
f7ea4f5067
isPICStyleRIPRel() and friends are never true in -static mode.
...
Simplify code based on this.
llvm-svn: 75099
2009-07-09 04:24:46 +00:00
Chris Lattner
c21f898300
.o file writing shouldn't mess around with pic/relo models like the JIT does.
...
llvm-svn: 75096
2009-07-09 03:40:30 +00:00
Chris Lattner
ee29d5d753
move a hack out of the asm-printer specific path to the main target selection path.
...
llvm-svn: 75095
2009-07-09 03:37:30 +00:00
Chris Lattner
afa2741cc0
many more cleanups, for example if in the "none" pic-style,
...
make sure we're set to static codegen. Simplify the decision
tree of target->picstyle/picmode settings.
llvm-svn: 75094
2009-07-09 03:32:31 +00:00
Chris Lattner
b5ce27ffe6
Reduce indentation in GVRequiresExtraLoad. Return true for windows
...
with DLLImport symbols even when in -static mode.
llvm-svn: 75093
2009-07-09 03:27:27 +00:00
Chris Lattner
cd52f7f20e
When in -static mode, force the PIC style to none. Doing this requires fixing
...
code which conflated RIPRel PIC with x86-64. Fix these to just check for X86-64
directly.
llvm-svn: 75092
2009-07-09 03:15:51 +00:00
Chris Lattner
fb40a495b0
merge two identical functions and simplify things that are GOT specific
...
llvm-svn: 75091
2009-07-09 02:55:47 +00:00