oota-llvm.git
15 years agoReturn dir separator as per platform.
Sanjiv Gupta [Thu, 9 Jul 2009 08:17:55 +0000 (08:17 +0000)]
Return dir separator as per platform.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75119 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agosimplify this logic a bit more.
Chris Lattner [Thu, 9 Jul 2009 07:02:30 +0000 (07:02 +0000)]
simplify this logic a bit more.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75118 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove reasoning about darwin $non_lazy_ptr stubs from asmprinter into
Chris Lattner [Thu, 9 Jul 2009 06:59:17 +0000 (06:59 +0000)]
move reasoning about darwin $non_lazy_ptr stubs from asmprinter into
isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75117 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTargets sometimes assign fixed stack object to spill certain callee-saved
Evan Cheng [Thu, 9 Jul 2009 06:53:48 +0000 (06:53 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75116 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReorg includes.
Evan Cheng [Thu, 9 Jul 2009 06:49:09 +0000 (06:49 +0000)]
Reorg includes.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75115 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd default ctor.
Chris Lattner [Thu, 9 Jul 2009 06:44:01 +0000 (06:44 +0000)]
add default ctor.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75114 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorearrange some code, no functionality change.
Chris Lattner [Thu, 9 Jul 2009 06:41:35 +0000 (06:41 +0000)]
rearrange some code, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75113 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake direct calls set MO_PLT or MO_DARWIN_STUB as appropriate with fast isel.
Chris Lattner [Thu, 9 Jul 2009 06:34:26 +0000 (06:34 +0000)]
make direct calls set MO_PLT or MO_DARWIN_STUB as appropriate with fast isel.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75112 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDon't create undefined symbols for aliases.
Nick Lewycky [Thu, 9 Jul 2009 06:03:04 +0000 (06:03 +0000)]
Don't create undefined symbols for aliases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75111 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoreduce nesting by rearranging branches.
Chris Lattner [Thu, 9 Jul 2009 05:55:04 +0000 (05:55 +0000)]
reduce nesting by rearranging branches.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75110 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake isel use MO_PIC_BASE_OFFSET when lowering globalvalues on darwin in pic
Chris Lattner [Thu, 9 Jul 2009 05:47:33 +0000 (05:47 +0000)]
make isel use MO_PIC_BASE_OFFSET when lowering globalvalues on darwin in pic
mode, instead of having asmprinter just "know" to print them.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75109 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agovarious minor cleanups, no functionality change.
Chris Lattner [Thu, 9 Jul 2009 05:42:07 +0000 (05:42 +0000)]
various minor cleanups, no functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75108 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake isel decide whether to emit $stub's on darwin instead of asmprinter.
Chris Lattner [Thu, 9 Jul 2009 05:27:35 +0000 (05:27 +0000)]
make isel decide whether to emit $stub's on darwin instead of asmprinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75107 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agopc-relative references are *always* to functions, never to globals. ISel
Chris Lattner [Thu, 9 Jul 2009 05:19:23 +0000 (05:19 +0000)]
pc-relative references are *always* to functions, never to globals.  ISel
is incapable of lowering direct references to globals like this, zap the code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75106 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomake cygwin use its own stubs set, instead of overloading a darwin one.
Chris Lattner [Thu, 9 Jul 2009 05:09:24 +0000 (05:09 +0000)]
make cygwin use its own stubs set, instead of overloading a darwin one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75105 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake isel determine where to emit PLT-relative calls instead of having
Chris Lattner [Thu, 9 Jul 2009 05:02:21 +0000 (05:02 +0000)]
Make isel determine where to emit PLT-relative calls instead of having
asmprinter do it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75104 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd missing predicate.
Chris Lattner [Thu, 9 Jul 2009 04:56:23 +0000 (04:56 +0000)]
add missing predicate.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75103 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoisPICStyleStub() is now never true in -static mode, so simplify code.
Chris Lattner [Thu, 9 Jul 2009 04:43:12 +0000 (04:43 +0000)]
isPICStyleStub() is now never true in -static mode, so simplify code.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75102 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agosimplify some code based on the fact that picstyles != none are only valid
Chris Lattner [Thu, 9 Jul 2009 04:39:06 +0000 (04:39 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75101 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoall this logic always returns true because GOT mode is never active in x86-64 mode.
Chris Lattner [Thu, 9 Jul 2009 04:27:47 +0000 (04:27 +0000)]
all this logic always returns true because GOT mode is never active in x86-64 mode.
Simplify it away, someone should evaluate this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75100 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoisPICStyleRIPRel() and friends are never true in -static mode.
Chris Lattner [Thu, 9 Jul 2009 04:24:46 +0000 (04:24 +0000)]
isPICStyleRIPRel() and friends are never true in -static mode.
Simplify code based on this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75099 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMove PR4517 to README.txt.
Nick Lewycky [Thu, 9 Jul 2009 04:03:30 +0000 (04:03 +0000)]
Move PR4517 to README.txt.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75098 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImproved tracking of value number kills. VN kills are now represented
Lang Hames [Thu, 9 Jul 2009 03:57:02 +0000 (03:57 +0000)]
Improved tracking of value number kills. VN kills are now represented
as an (index,bool) pair. The bool flag records whether the kill is a
PHI kill or not. This code will be used to enable splitting of live
intervals containing PHI-kills.

A slight change to live interval weights introduced an extra spill
into lsr-code-insertion (outside the critical sections). The test
condition has been updated to reflect this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75097 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago.o file writing shouldn't mess around with pic/relo models like the JIT does.
Chris Lattner [Thu, 9 Jul 2009 03:40:30 +0000 (03:40 +0000)]
.o file writing shouldn't mess around with pic/relo models like the JIT does.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75096 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove a hack out of the asm-printer specific path to the main target selection path.
Chris Lattner [Thu, 9 Jul 2009 03:37:30 +0000 (03:37 +0000)]
move a hack out of the asm-printer specific path to the main target selection path.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75095 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomany more cleanups, for example if in the "none" pic-style,
Chris Lattner [Thu, 9 Jul 2009 03:32:31 +0000 (03:32 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75094 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReduce indentation in GVRequiresExtraLoad. Return true for windows
Chris Lattner [Thu, 9 Jul 2009 03:27:27 +0000 (03:27 +0000)]
Reduce indentation in GVRequiresExtraLoad.  Return true for windows
with DLLImport symbols even when in -static mode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75093 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWhen in -static mode, force the PIC style to none. Doing this requires fixing
Chris Lattner [Thu, 9 Jul 2009 03:15:51 +0000 (03:15 +0000)]
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75092 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomerge two identical functions and simplify things that are GOT specific
Chris Lattner [Thu, 9 Jul 2009 02:55:47 +0000 (02:55 +0000)]
merge two identical functions and simplify things that are GOT specific

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75091 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agohoist check for IsTailCall to callers. Eliminate redundant check for
Chris Lattner [Thu, 9 Jul 2009 02:46:53 +0000 (02:46 +0000)]
hoist check for IsTailCall to callers.  Eliminate redundant check for
x86-64: GOT-style PIC is never used on x86-64.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75090 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agochange a few methods to be static functions.
Chris Lattner [Thu, 9 Jul 2009 02:44:11 +0000 (02:44 +0000)]
change a few methods to be static functions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75089 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoone more added assert.
Chris Lattner [Thu, 9 Jul 2009 02:43:55 +0000 (02:43 +0000)]
one more added assert.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75088 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove eh, convert to FileCheck style
Chris Lattner [Thu, 9 Jul 2009 01:07:22 +0000 (01:07 +0000)]
remove eh, convert to FileCheck style

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75087 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomove handling of dllimport linkage in isel, not in asmprinter.
Chris Lattner [Thu, 9 Jul 2009 00:58:53 +0000 (00:58 +0000)]
move handling of dllimport linkage in isel, not in asmprinter.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75086 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agowe have no tests for dllimport/export. Add one.
Chris Lattner [Thu, 9 Jul 2009 00:53:44 +0000 (00:53 +0000)]
we have no tests for dllimport/export.  Add one.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75085 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoWork around an ICE in gcc-4.2.4.
Jeffrey Yasskin [Thu, 9 Jul 2009 00:52:44 +0000 (00:52 +0000)]
Work around an ICE in gcc-4.2.4.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75084 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoone more assertion!
Chris Lattner [Thu, 9 Jul 2009 00:49:29 +0000 (00:49 +0000)]
one more assertion!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75083 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd some more assertions. Remove code to handle dllimport on darwin.
Chris Lattner [Thu, 9 Jul 2009 00:47:59 +0000 (00:47 +0000)]
add some more assertions.  Remove code to handle dllimport on darwin.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75082 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE
Dan Gohman [Thu, 9 Jul 2009 00:46:33 +0000 (00:46 +0000)]
Make SelectionDAG::getVectorShuffle work properly for VECTOR_SHUFFLE
nodes with operand types that differ from the result type. (This
doesn't normally happen right now, because
SelectionDAGLowering::visitShuffleVector normalizes vector shuffles.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75081 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove "asmcall", using print_pcrel_imm instead of printOperand.
Chris Lattner [Thu, 9 Jul 2009 00:39:19 +0000 (00:39 +0000)]
remove "asmcall", using print_pcrel_imm instead of printOperand.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75080 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agosimplify some logic
Chris Lattner [Thu, 9 Jul 2009 00:32:12 +0000 (00:32 +0000)]
simplify some logic

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75079 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago* add some assertions for sanity checking.
Chris Lattner [Thu, 9 Jul 2009 00:27:29 +0000 (00:27 +0000)]
* add some assertions for sanity checking.
* remove some old code that was needed when we'd put ESP in the scale instead of
  the base of some instructions.
* Fix a bug with the P modifier in inline asm that caused us to drop it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75077 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agostop on the first file mismatch.
Chris Lattner [Thu, 9 Jul 2009 00:19:21 +0000 (00:19 +0000)]
stop on the first file mismatch.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75076 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd a test for dale's recent change.
Chris Lattner [Thu, 9 Jul 2009 00:00:16 +0000 (00:00 +0000)]
add a test for dale's recent change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75074 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake SmallPtrSet iterators real iterators
Douglas Gregor [Wed, 8 Jul 2009 23:53:54 +0000 (23:53 +0000)]
Make SmallPtrSet iterators real iterators

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75073 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoLLVMContext-ification.
Owen Anderson [Wed, 8 Jul 2009 23:50:31 +0000 (23:50 +0000)]
LLVMContext-ification.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75072 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoswitch test to FileCheck-style and test the P and non-P cases.
Chris Lattner [Wed, 8 Jul 2009 23:44:06 +0000 (23:44 +0000)]
switch test to FileCheck-style and test the P and non-P cases.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75071 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agorename a test to make it a feature test.
Chris Lattner [Wed, 8 Jul 2009 23:40:57 +0000 (23:40 +0000)]
rename a test to make it a feature test.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75070 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse common code for both ARM and Thumb-2 instruction and register info.
David Goodwin [Wed, 8 Jul 2009 23:10:31 +0000 (23:10 +0000)]
Use common code for both ARM and Thumb-2 instruction and register info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75067 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago* manually concatenate two string literals
Chris Lattner [Wed, 8 Jul 2009 23:09:14 +0000 (23:09 +0000)]
* manually concatenate two string literals
* remove some dead code: darwin doesn't support dllimport linkage.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75066 91177308-0d34-0410-b5e6-96231b3b80d8

15 years ago- Add some NEON ld / st instruction static encoding.
Evan Cheng [Wed, 8 Jul 2009 22:51:32 +0000 (22:51 +0000)]
- Add some NEON ld / st instruction static encoding.
- Make bits 25-27 for ldrh, etc. explicitly zero. Previously only the JIT uses the encoding information and it's assuming anything not specified to be zero. Making them explicit so the disassembler is happy.
Patch by Sean Callanan.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75065 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix thinko.
Devang Patel [Wed, 8 Jul 2009 22:25:56 +0000 (22:25 +0000)]
Fix thinko.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75061 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix the AssertingVH unittests.
Jeffrey Yasskin [Wed, 8 Jul 2009 22:09:00 +0000 (22:09 +0000)]
Fix the AssertingVH unittests.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75060 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd an option to allocate JITed global data separately from code. By
Jeffrey Yasskin [Wed, 8 Jul 2009 21:59:57 +0000 (21:59 +0000)]
Add an option to allocate JITed global data separately from code.  By
default, this option is not enabled to support clients who rely on
this behavior.

Fixes http://llvm.org/PR4483

A patch to allocate additional memory for globals after we run out is
forthcoming.

Patch by Reid Kleckner!

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75059 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoReformat.
David Greene [Wed, 8 Jul 2009 21:57:46 +0000 (21:57 +0000)]
Reformat.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75058 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoDrop "constant" from
Devang Patel [Wed, 8 Jul 2009 21:57:07 +0000 (21:57 +0000)]
Drop "constant" from
  !0 = constant metadata !{...}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75057 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAllow users of GraphWriter to display graphs asynchronously. This
David Greene [Wed, 8 Jul 2009 21:53:41 +0000 (21:53 +0000)]
Allow users of GraphWriter to display graphs asynchronously.  This
provides a way to quickly dump a bunch of graph information to dot files
and display them.  It's a timesaver when working on large systems.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75056 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd an ExecuteNoWait interface to support asynchronous process spawning.
David Greene [Wed, 8 Jul 2009 21:46:40 +0000 (21:46 +0000)]
Add an ExecuteNoWait interface to support asynchronous process spawning.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75055 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate SLotTracker to handle MDNode slots.
Devang Patel [Wed, 8 Jul 2009 21:44:25 +0000 (21:44 +0000)]
Update SLotTracker to handle MDNode slots.
Simplify MDNode printing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75053 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoNowadays vectors are only split if they have an even
Duncan Sands [Wed, 8 Jul 2009 21:34:03 +0000 (21:34 +0000)]
Nowadays vectors are only split if they have an even
number of elements.  Make some simplifications based
on this (in particular SplitVecRes_SETCC).  Tighten
up some checking while there.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75050 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange how so_imm and t2_so_imm are handled. At instruction selection time, the immed...
Evan Cheng [Wed, 8 Jul 2009 21:03:57 +0000 (21:03 +0000)]
Change how so_imm and t2_so_imm are handled. At instruction selection time, the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75048 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRecommit r74952 with a bug fix:
Bill Wendling [Wed, 8 Jul 2009 21:02:53 +0000 (21:02 +0000)]
Recommit r74952 with a bug fix:

DWARF requires frame moves be specified at specific times. If you have a
prologue like this:

__Z3fooi:
Leh_func_begin1:
LBB1_0: ## entry
       pushl   %ebp
Llabel1:
       movl    %esp, %ebp
Llabel2:
       pushl   %esi
Llabel3:
       subl    $20, %esp
       call    "L1$pb"
"L1$pb":
       popl    %esi

The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp,
%ebp" makes %ebp the new stack frame register, so that needs to be specified in
DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs
to be specified in DWARF.

Before, all of this logic was in one method. This didn't work too well, because
as you can see there are multiple FDE line entries that need to be created.

This fix creates the "MachineMove" objects directly when they're needed; instead
of waiting until the end, and losing information.

There is some ugliness where we generate code like this:

LBB22_0: ## entry
pushl %ebp
Llabel280:
movl %esp, %ebp
Llabel281:
Llabel284:
pushl %ebp  <----------
pushl %ebx
pushl %edi
pushl %esi
Llabel282:
subl $328, %esp

Notice the extra "pushl %ebp". If we generate a "machine move" instruction in
the FDE for that pushl, the linker may get very confused about what value %ebp
should have when exitting the function. I.e., it'll give it the value %esp
instead of the %ebp value from the first "pushl". Not to mention that, in this
case, %ebp isn't modified in the function (that's a separate bug). I put a small
hack in to get it to work. It might be the only solution, but should be
revisited once the above case is fixed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75047 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUse interators instead of counters for loops.
Bill Wendling [Wed, 8 Jul 2009 20:57:27 +0000 (20:57 +0000)]
Use interators instead of counters for loops.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75046 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMissed an exit during the conversion.
Torok Edwin [Wed, 8 Jul 2009 20:55:50 +0000 (20:55 +0000)]
Missed an exit during the conversion.
Will convert assert(0) that don't have abort() to LLVM_UNREACHABLE in a later
commit.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75045 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement changes from Chris's feedback.
Torok Edwin [Wed, 8 Jul 2009 20:53:28 +0000 (20:53 +0000)]
Implement changes from Chris's feedback.
Finish converting lib/Target.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPush LLVMContext _back_ through IRBuilder.
Owen Anderson [Wed, 8 Jul 2009 20:50:47 +0000 (20:50 +0000)]
Push LLVMContext _back_ through IRBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSwitch all the MC tests to use FileCheck.
Chris Lattner [Wed, 8 Jul 2009 20:50:34 +0000 (20:50 +0000)]
Switch all the MC tests to use FileCheck.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75039 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoconvert to FileCheck style.
Chris Lattner [Wed, 8 Jul 2009 20:40:54 +0000 (20:40 +0000)]
convert to FileCheck style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75038 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement NEON vst1 instruction.
Bob Wilson [Wed, 8 Jul 2009 20:32:02 +0000 (20:32 +0000)]
Implement NEON vst1 instruction.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75037 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoGeneralize opcode selection in ARMBaseRegisterInfo.
David Goodwin [Wed, 8 Jul 2009 20:28:28 +0000 (20:28 +0000)]
Generalize opcode selection in ARMBaseRegisterInfo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75036 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoFix cmake build.
Xerxes Ranby [Wed, 8 Jul 2009 20:13:41 +0000 (20:13 +0000)]
Fix cmake build.
Added ARMBaseRegisterInfo.cpp to lib/Target/ARM/CMakeLists.txt

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75035 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSupport MDNode forward reference.
Devang Patel [Wed, 8 Jul 2009 19:23:54 +0000 (19:23 +0000)]
Support MDNode forward reference.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75031 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMake the code that updates ScalarEvolution's internal state in response
Dan Gohman [Wed, 8 Jul 2009 19:23:34 +0000 (19:23 +0000)]
Make the code that updates ScalarEvolution's internal state in response
to a loop deletion more thorough. Don't prune the def-use tree search at
instructions that don't have SCEVs computed, because an instruction with
a user that has a computed SCEV may itself lack a computed SCEV.  Also,
remove loop-related values from the ValuesAtScopes and
ConstantEvolutionLoopExitValues maps as well.

This fixes a regression in 483.xalancbmk.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75030 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTell ScalarEvolution to forget a loop before starting to delete it.
Dan Gohman [Wed, 8 Jul 2009 19:14:29 +0000 (19:14 +0000)]
Tell ScalarEvolution to forget a loop before starting to delete it.
This way ScalarEvolution can examine the loop to determine what state
it needs to update, if it chooses.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75029 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoConvert more abort() calls to llvm_report_error().
Torok Edwin [Wed, 8 Jul 2009 19:04:27 +0000 (19:04 +0000)]
Convert more abort() calls to llvm_report_error().
Also remove trailing semicolon.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75027 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoSwitch GlobalVariable ctors to a sane API, where *either* a context or a module is...
Owen Anderson [Wed, 8 Jul 2009 19:03:57 +0000 (19:03 +0000)]
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoadd some more check for vector compares.
Chris Lattner [Wed, 8 Jul 2009 18:51:25 +0000 (18:51 +0000)]
add some more check for vector compares.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75024 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoconvert a test to "FileCheck" style.
Chris Lattner [Wed, 8 Jul 2009 18:48:24 +0000 (18:48 +0000)]
convert a test to "FileCheck" style.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75023 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a new little "FileCheck" utility for regression testing.
Chris Lattner [Wed, 8 Jul 2009 18:44:05 +0000 (18:44 +0000)]
Add a new little "FileCheck" utility for regression testing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75022 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPush methods into base class in preparation for sharing.
David Goodwin [Wed, 8 Jul 2009 18:31:39 +0000 (18:31 +0000)]
Push methods into base class in preparation for sharing.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75020 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoImplement NEON vld1 instructions.
Bob Wilson [Wed, 8 Jul 2009 18:11:30 +0000 (18:11 +0000)]
Implement NEON vld1 instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75019 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStart converting to new error handling API.
Torok Edwin [Wed, 8 Jul 2009 18:01:40 +0000 (18:01 +0000)]
Start converting to new error handling API.
cerr+abort -> llvm_report_error
assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75018 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoConform...
David Goodwin [Wed, 8 Jul 2009 17:55:48 +0000 (17:55 +0000)]
Conform...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75017 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoStart breaking out common base functionality for register info.
David Goodwin [Wed, 8 Jul 2009 17:28:55 +0000 (17:28 +0000)]
Start breaking out common base functionality for register info.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75016 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoconvert comments to doxygen style
Chris Lattner [Wed, 8 Jul 2009 17:09:18 +0000 (17:09 +0000)]
convert comments to doxygen style

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75015 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd rev16 test... xfail for now
David Goodwin [Wed, 8 Jul 2009 16:15:06 +0000 (16:15 +0000)]
Add rev16 test... xfail for now

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75012 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd myself to blame file...
David Goodwin [Wed, 8 Jul 2009 16:12:12 +0000 (16:12 +0000)]
Add myself to blame file...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75011 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoCheckpoint Thumb2 Instr info work. Generalized base code so that it can be shared...
David Goodwin [Wed, 8 Jul 2009 16:09:28 +0000 (16:09 +0000)]
Checkpoint Thumb2 Instr info work. Generalized base code so that it can be shared between ARM and Thumb2. Not yet activated because register information must be generalized first.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75010 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove trailing whitespace. Reorder some methods
Duncan Sands [Wed, 8 Jul 2009 11:36:39 +0000 (11:36 +0000)]
Remove trailing whitespace.  Reorder some methods
and cases alphabetically.  No functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75001 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoUpdate the example to show that an archive can contain llvm bitcode.
Rafael Espindola [Wed, 8 Jul 2009 11:13:34 +0000 (11:13 +0000)]
Update the example to show that an archive can contain llvm bitcode.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75000 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoTrial first commit
Alisdair Meredith [Wed, 8 Jul 2009 09:04:19 +0000 (09:04 +0000)]
Trial first commit
Fixed build, requires std header before using std::string

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74995 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoMark sublw_cc and subfw_cc as Terminator insns so that they are part of the terminato...
Sanjiv Gupta [Wed, 8 Jul 2009 05:40:05 +0000 (05:40 +0000)]
Mark sublw_cc and subfw_cc as Terminator insns so that they are part of the terminator insns for a basic block alongwith branch insns. This way a copy is not getting inserted between cmp and branch during PHIElimination disturbing the status flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74992 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoRemove the vicmp and vfcmp instructions. Because we never had a release with
Nick Lewycky [Wed, 8 Jul 2009 03:04:38 +0000 (03:04 +0000)]
Remove the vicmp and vfcmp instructions. Because we never had a release with
these instructions, no autoupgrade or backwards compatibility support is
provided.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoAdd a Thumb2 instruction flag to that indicates whether the instruction can be transf...
Evan Cheng [Wed, 8 Jul 2009 01:46:35 +0000 (01:46 +0000)]
Add a Thumb2 instruction flag to that indicates whether the instruction can be transformed to 16-bit variant.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74988 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoPush LLVMContext through GlobalVariables and IRBuilder.
Owen Anderson [Wed, 8 Jul 2009 01:26:06 +0000 (01:26 +0000)]
Push LLVMContext through GlobalVariables and IRBuilder.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoremove two methods that no longer exist.
Chris Lattner [Wed, 8 Jul 2009 01:07:39 +0000 (01:07 +0000)]
remove two methods that no longer exist.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74982 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agomore getting windows to build.
Chris Lattner [Wed, 8 Jul 2009 00:52:12 +0000 (00:52 +0000)]
more getting windows to build.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74981 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoeliminate the v[if]cmp versions of these tests, now that [if]cmp+sext works.
Chris Lattner [Wed, 8 Jul 2009 00:49:35 +0000 (00:49 +0000)]
eliminate the v[if]cmp versions of these tests, now that [if]cmp+sext works.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74980 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agoChange these tests to use [fi]cmp+sext instead of v[fi]cmp. No
Chris Lattner [Wed, 8 Jul 2009 00:46:57 +0000 (00:46 +0000)]
Change these tests to use [fi]cmp+sext instead of v[fi]cmp.  No
functionality change.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74979 91177308-0d34-0410-b5e6-96231b3b80d8

15 years agodag combine sext(setcc) -> vsetcc before legalize. To make this safe,
Chris Lattner [Wed, 8 Jul 2009 00:31:33 +0000 (00:31 +0000)]
dag combine sext(setcc) -> vsetcc before legalize.  To make this safe,
VSETCC must define all bits, which is different than it was documented
to before.  Since all targets that implement VSETCC already have this
behavior, and we don't optimize based on this, just change the
documentation.  We now get nice code for vec_compare.ll

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74978 91177308-0d34-0410-b5e6-96231b3b80d8