oota-llvm.git
14 years agoObserve hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. Do not change
Evan Cheng [Thu, 1 Oct 2009 08:26:23 +0000 (08:26 +0000)]
Observe hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. Do not change
operands of instructions with these properties while breaking anti-dep.

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

14 years agoAdd hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq flags to ld / st multiple,
Evan Cheng [Thu, 1 Oct 2009 08:22:27 +0000 (08:22 +0000)]
Add hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq flags to ld / st multiple,
ld / st pairs, etc.

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

14 years agoAdd instruction flags: hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. When
Evan Cheng [Thu, 1 Oct 2009 08:21:18 +0000 (08:21 +0000)]
Add instruction flags: hasExtraSrcRegAllocReq and hasExtraDefRegAllocReq. When
set, these flags indicate the instructions source / def operands have special
register allocation requirement that are not captured in their register classes.
Post-allocation passes (e.g. post-alloc scheduler) should not change their
allocations. e.g. ARM::LDRD require the two definitions to be allocated
even / odd register pair.

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

14 years agoRemove GVNPRE.cpp from the CMake makefile
Douglas Gregor [Thu, 1 Oct 2009 05:30:05 +0000 (05:30 +0000)]
Remove GVNPRE.cpp from the CMake makefile

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

14 years agoremove the GVNPRE pass. It has been subsumed by the GVN pass.
Chris Lattner [Thu, 1 Oct 2009 02:18:36 +0000 (02:18 +0000)]
remove the GVNPRE pass.  It has been subsumed by the GVN pass.
Ok'd by Owen.

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

14 years agoUpdate ARM JIT emitter to account for ld/st multiple changes.
Evan Cheng [Thu, 1 Oct 2009 01:39:21 +0000 (01:39 +0000)]
Update ARM JIT emitter to account for ld/st multiple changes.

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

14 years agoChange ld/st multiples to explicitly model the writeback to base register. This fixes...
Evan Cheng [Thu, 1 Oct 2009 01:33:39 +0000 (01:33 +0000)]
Change ld/st multiples to explicitly model the writeback to base register. This fixes most of the -ldstopti-before-sched2 regressions.

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

14 years agoAdd another MDNode into DebugLocTuple. This will be used to keep track of inlined...
Devang Patel [Thu, 1 Oct 2009 01:15:28 +0000 (01:15 +0000)]
Add another MDNode into DebugLocTuple. This will be used to keep track of inlined functions.

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

14 years agoIf location info is attached with an instruction then keep track of alloca slots...
Devang Patel [Thu, 1 Oct 2009 01:03:26 +0000 (01:03 +0000)]
If location info is attached with an instruction then keep track of alloca slots used by a variable. This info will be used by AsmPrinter to emit debug info for variables.

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

14 years agoUse MachineInstr as an processDebugLoc() argument.
Devang Patel [Wed, 30 Sep 2009 23:12:50 +0000 (23:12 +0000)]
Use MachineInstr as an processDebugLoc() argument.
This will allow processDebugLoc() to handle scopes for DWARF debug info.

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

14 years agoUse MDNode * directly as an RecordSourceLine() argument.
Devang Patel [Wed, 30 Sep 2009 22:51:28 +0000 (22:51 +0000)]
Use MDNode * directly as an RecordSourceLine() argument.

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

14 years agoRemove dead code.
Devang Patel [Wed, 30 Sep 2009 22:43:52 +0000 (22:43 +0000)]
Remove dead code.

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

14 years agoAdd isFOO() helpers. Fix getDirectory() and getFilename() for DIScope.
Devang Patel [Wed, 30 Sep 2009 22:34:41 +0000 (22:34 +0000)]
Add isFOO() helpers. Fix getDirectory() and getFilename() for DIScope.

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

14 years agoUse OutStreamer.SwitchSection instead of writing out textual section directives.
Bob Wilson [Wed, 30 Sep 2009 22:25:37 +0000 (22:25 +0000)]
Use OutStreamer.SwitchSection instead of writing out textual section directives.
Add a new TargetLoweringObjectFileMachO::getConstTextCoalSection method to
get access to that section.

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

14 years agoAdd a new virtual EmitStartOfAsmFile method to the AsmPrinter and use this
Bob Wilson [Wed, 30 Sep 2009 22:06:26 +0000 (22:06 +0000)]
Add a new virtual EmitStartOfAsmFile method to the AsmPrinter and use this
to emit target-specific things at the beginning of the asm output.  This
fixes a problem for PPC, where the text sections are not being kept together
as expected.  The base class doInitialization code calls DW->BeginModule()
which emits a bunch of DWARF section directives.  The PPC doInitialization
code then emits all the TEXT section directives, with the intention that they
will be kept together. But as I understand it, the Darwin assembler treats
the default TEXT section as a special case and moves it to the beginning of
the file, which means that all those DWARF sections are in the middle of
the text.  With this change, the EmitStartOfAsmFile hook is called before
the DWARF section directives are emitted, so that all the PPC text section
directives come out right at the beginning of the file.

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

14 years agoFix a comment typo.
Bob Wilson [Wed, 30 Sep 2009 21:44:42 +0000 (21:44 +0000)]
Fix a comment typo.

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

14 years agoCheck for null MDNode element while printing comment.
Devang Patel [Wed, 30 Sep 2009 21:26:51 +0000 (21:26 +0000)]
Check for null MDNode element while printing comment.

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

14 years agoFix a comment.
Bob Wilson [Wed, 30 Sep 2009 21:26:13 +0000 (21:26 +0000)]
Fix a comment.

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

14 years agoThe AsmPrinter base class contains a DwarfWriter member, so there's no need
Bob Wilson [Wed, 30 Sep 2009 21:24:45 +0000 (21:24 +0000)]
The AsmPrinter base class contains a DwarfWriter member, so there's no need
for derived AsmPrinters to add another one.  In some cases, fixing this
removes the need to override the doInitialization method.

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

14 years agoAssert that ConstantArrays are created with correctly-typed elements.
Jeffrey Yasskin [Wed, 30 Sep 2009 21:08:08 +0000 (21:08 +0000)]
Assert that ConstantArrays are created with correctly-typed elements.

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

14 years agoFix this code so that it doesn't try to iterate through a std::vector
Dan Gohman [Wed, 30 Sep 2009 20:54:16 +0000 (20:54 +0000)]
Fix this code so that it doesn't try to iterate through a std::vector
while calling changeImmediateDominator, which removes elements from the
vector. This fixes PR5097.

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

14 years agoSilence comparison always false warning in -Asserts mode.
Reid Kleckner [Wed, 30 Sep 2009 20:43:07 +0000 (20:43 +0000)]
Silence comparison always false warning in -Asserts mode.

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

14 years agoAdd additional assert() to verify no extraneous use of a scavenged register.
Jim Grosbach [Wed, 30 Sep 2009 20:35:36 +0000 (20:35 +0000)]
Add additional assert() to verify no extraneous use of a scavenged register.

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

14 years agoPrint tag name for MDNodes that are used to encode debug info.
Devang Patel [Wed, 30 Sep 2009 20:16:54 +0000 (20:16 +0000)]
Print tag name for MDNodes that are used to encode debug info.

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

14 years agoFix integer overflow in instruction scheduling. This can happen if we have
Reid Kleckner [Wed, 30 Sep 2009 20:15:38 +0000 (20:15 +0000)]
Fix integer overflow in instruction scheduling.  This can happen if we have
basic blocks that are so long that their size overflows a short.

Also assert that overflow does not happen in the future, as requested by Evan.

This fixes PR4401.

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

14 years agoSilence unused variable warning.
Devang Patel [Wed, 30 Sep 2009 17:13:41 +0000 (17:13 +0000)]
Silence unused variable warning.

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

14 years agoClarify comment phrasing.
Jim Grosbach [Wed, 30 Sep 2009 15:23:38 +0000 (15:23 +0000)]
Clarify comment phrasing.

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

14 years agoAdd a option which would move ld/st multiple pass before post-alloc scheduling.
Evan Cheng [Wed, 30 Sep 2009 08:53:01 +0000 (08:53 +0000)]
Add a option which would move ld/st multiple pass before post-alloc scheduling.

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

14 years agoAdd a target hook to add pre- post-regalloc scheduling passes.
Evan Cheng [Wed, 30 Sep 2009 08:49:50 +0000 (08:49 +0000)]
Add a target hook to add pre- post-regalloc scheduling passes.

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

14 years agoForgot this test earlier.
Evan Cheng [Wed, 30 Sep 2009 08:41:27 +0000 (08:41 +0000)]
Forgot this test earlier.

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

14 years agoadd macruby, fix a validation problem.
Chris Lattner [Wed, 30 Sep 2009 06:27:22 +0000 (06:27 +0000)]
add macruby, fix a validation problem.

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

14 years agoFix compile error as debug interface changed.
Nick Lewycky [Wed, 30 Sep 2009 04:50:26 +0000 (04:50 +0000)]
Fix compile error as debug interface changed.

By the way, this code is buggy. You can't keep a map<MDNode *, something>
because the MDNode may be destroyed and reused for something else.

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

14 years agoreplace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister()
Jim Grosbach [Wed, 30 Sep 2009 01:47:59 +0000 (01:47 +0000)]
replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister()
per customary usage

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

14 years agoWhen checking whether we need to reserve a register for the scavenger,
Jim Grosbach [Wed, 30 Sep 2009 01:43:29 +0000 (01:43 +0000)]
When checking whether we need to reserve a register for the scavenger,
the size of the saved frame pointer needs to be taken into account.

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

14 years agoAdd "isBarrier = 1" to return instructions.
Jim Grosbach [Wed, 30 Sep 2009 01:35:11 +0000 (01:35 +0000)]
Add "isBarrier = 1" to return instructions.

Patch by Sylvere Teissier.

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

14 years agofix compiler warning
Jim Grosbach [Wed, 30 Sep 2009 00:37:40 +0000 (00:37 +0000)]
fix compiler warning

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

14 years agoRemove regression that requires post-RA scheduling from a target that does not use...
David Goodwin [Wed, 30 Sep 2009 00:23:57 +0000 (00:23 +0000)]
Remove regression that requires post-RA scheduling from a target that does not use that scheduler.

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

14 years agoFor Darwin, emit all the text section directives together before the dwarf
Bob Wilson [Wed, 30 Sep 2009 00:23:42 +0000 (00:23 +0000)]
For Darwin, emit all the text section directives together before the dwarf
section directives.  This causes the assembler to put the text sections at
the beginning of the object file, which helps work around a limitation of the
Darwin ARM relocations.  Radar 7255355.

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

14 years agoSimplify.
Devang Patel [Wed, 30 Sep 2009 00:14:40 +0000 (00:14 +0000)]
Simplify.

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

14 years agoRemove -post-RA-schedule flag and add a TargetSubtarget method to enable post-registe...
David Goodwin [Wed, 30 Sep 2009 00:10:16 +0000 (00:10 +0000)]
Remove -post-RA-schedule flag and add a TargetSubtarget method to enable post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8.

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

14 years agoForward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by...
Douglas Gregor [Wed, 30 Sep 2009 00:08:25 +0000 (00:08 +0000)]
Forward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by itself

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

14 years agoAdd a way for a frontend to generate more complex dwarf location
Mike Stump [Wed, 30 Sep 2009 00:08:22 +0000 (00:08 +0000)]
Add a way for a frontend to generate more complex dwarf location
information.  This allows arbitrary code involving DW_OP_plus_uconst
and DW_OP_deref.  The scheme allows for easy extention to include,
any, or all of the DW_OP_ opcodes.  I thought about just exposing all
of them, but, wasn't sure if people wanted the dwarf opcodes exposed
in the api.  Is that a layering violation?

With this scheme, the entire existing block scheme used by llvm-gcc
can be switched over to the new scheme.  I think that would be
cleaner, as then the compiler specific bits are not present in llvm
proper.  Before the old code can be yanked however, similar code in
clang would have to be removed.

Next up, more testing.

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

14 years agominor cleanup and add clarifying comment
Jim Grosbach [Tue, 29 Sep 2009 23:17:20 +0000 (23:17 +0000)]
minor cleanup and add clarifying comment

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

14 years agoLookup handler name only when assertions are enabled.
Devang Patel [Tue, 29 Sep 2009 22:05:52 +0000 (22:05 +0000)]
Lookup handler name only when assertions are enabled.

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

14 years agoAdd removeMD().
Devang Patel [Tue, 29 Sep 2009 20:42:25 +0000 (20:42 +0000)]
Add removeMD().

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

14 years agoOnly one custom meadata of each kind can be attached with an instruction.
Devang Patel [Tue, 29 Sep 2009 20:30:57 +0000 (20:30 +0000)]
Only one custom meadata of each kind can be attached with an instruction.

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

14 years agoAdditional check for regno==0
Jim Grosbach [Tue, 29 Sep 2009 20:11:10 +0000 (20:11 +0000)]
Additional check for regno==0

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

14 years agoUse assertion instead of early exit to catch malformed custom metadata store.
Devang Patel [Tue, 29 Sep 2009 20:01:19 +0000 (20:01 +0000)]
Use assertion instead of early exit to catch malformed custom metadata store.

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

14 years agoRemove unnecessary cast.
Devang Patel [Tue, 29 Sep 2009 19:56:13 +0000 (19:56 +0000)]
Remove unnecessary cast.

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

14 years agoRemove std::string uses from DebugInfo interface.
Devang Patel [Tue, 29 Sep 2009 18:40:58 +0000 (18:40 +0000)]
Remove std::string uses from DebugInfo interface.

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

14 years agoCreate empty StringRef is incoming cstring is NULL.
Devang Patel [Tue, 29 Sep 2009 18:39:56 +0000 (18:39 +0000)]
Create empty StringRef is incoming cstring is NULL.

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

14 years agoSimplify the tracking of virtual frame index registers. Ranges cannot overlap,
Jim Grosbach [Tue, 29 Sep 2009 18:23:15 +0000 (18:23 +0000)]
Simplify the tracking of virtual frame index registers. Ranges cannot overlap,
so a simple "current register" will suffice. Also add some additional
sanity-checking assertions to make sure things are as we expect.

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

14 years agoMoving register scavenging to a post pass results in virtual registers in
Jim Grosbach [Tue, 29 Sep 2009 17:24:37 +0000 (17:24 +0000)]
Moving register scavenging to a post pass results in virtual registers in
the instruction we're scavenging for. The scavenger needs to know to avoid
them when analyzing register usage.

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

14 years agoPost-RA regressions.
David Goodwin [Tue, 29 Sep 2009 17:10:26 +0000 (17:10 +0000)]
Post-RA regressions.

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

14 years agoFix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.
Evan Cheng [Tue, 29 Sep 2009 07:07:30 +0000 (07:07 +0000)]
Fix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.

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

14 years agoRegenerate.
Nick Lewycky [Tue, 29 Sep 2009 06:18:23 +0000 (06:18 +0000)]
Regenerate.

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

14 years agoFix configure bug that only shows up in a clean build. Don't try to invoke gcc
Nick Lewycky [Tue, 29 Sep 2009 06:18:00 +0000 (06:18 +0000)]
Fix configure bug that only shows up in a clean build. Don't try to invoke gcc
until after the compiler itself has been set up.

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

14 years agoRoll back r83048.
Nick Lewycky [Tue, 29 Sep 2009 05:48:51 +0000 (05:48 +0000)]
Roll back r83048.

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

14 years agoRegenerate.
Nick Lewycky [Tue, 29 Sep 2009 05:41:21 +0000 (05:41 +0000)]
Regenerate.

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

14 years agoOn Linux, uname -m reports the kernel type. Some Linux systems are 32-bit but
Nick Lewycky [Tue, 29 Sep 2009 05:40:45 +0000 (05:40 +0000)]
On Linux, uname -m reports the kernel type. Some Linux systems are 32-bit but
with a 64-bit kernel, which confuses LLVM. Make LLVM double-check this by
checking which defines the system gcc actually sets.

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

14 years agoParse custom metadata attached with an instruction.
Devang Patel [Tue, 29 Sep 2009 00:01:14 +0000 (00:01 +0000)]
Parse custom metadata attached with an instruction.

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

14 years agoB&I's buildit forces a PATH that omits /Developer. Temporarily add
Stuart Hastings [Mon, 28 Sep 2009 23:42:38 +0000 (23:42 +0000)]
B&I's buildit forces a PATH that omits /Developer.  Temporarily add
/Developer/usr/bin to the PATH when looking for llvm-gcc.

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

14 years agoFor B&I-style builds, tweak build_llvm script to prefer LLVM-G++ if
Stuart Hastings [Mon, 28 Sep 2009 22:17:53 +0000 (22:17 +0000)]
For B&I-style builds, tweak build_llvm script to prefer LLVM-G++ if
available.  Override by setting CC and CXX in the environment.

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

14 years agoAdjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stack
Jim Grosbach [Mon, 28 Sep 2009 22:08:06 +0000 (22:08 +0000)]
Adjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stack
slot for the register scavenger when compiling Thumb1 functions.

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

14 years agoAdd C API calls for building FNeg operations. Patch by KS Sreeram!
Dan Gohman [Mon, 28 Sep 2009 21:51:41 +0000 (21:51 +0000)]
Add C API calls for building FNeg operations. Patch by KS Sreeram!

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

14 years agos/class Metadata/class MetadataContext/g
Devang Patel [Mon, 28 Sep 2009 21:41:20 +0000 (21:41 +0000)]
s/class Metadata/class MetadataContext/g

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

14 years agoDo not use global typedef for MDKindID.
Devang Patel [Mon, 28 Sep 2009 21:14:55 +0000 (21:14 +0000)]
Do not use global typedef for MDKindID.

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

14 years agoForgot to update the documentation in r82906. s/DEBUG_RUNTIME/DEBUG_SYMBOLS/.
Jeffrey Yasskin [Mon, 28 Sep 2009 21:14:38 +0000 (21:14 +0000)]
Forgot to update the documentation in r82906. s/DEBUG_RUNTIME/DEBUG_SYMBOLS/.

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

14 years agoRemove unnecessary include.
Devang Patel [Mon, 28 Sep 2009 21:06:38 +0000 (21:06 +0000)]
Remove unnecessary include.

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

14 years agoAdd a testcase for r83011.
Dan Gohman [Mon, 28 Sep 2009 21:03:02 +0000 (21:03 +0000)]
Add a testcase for r83011.

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

14 years agoWhen extending the operands of an addrec, iterate through all
Dan Gohman [Mon, 28 Sep 2009 21:01:47 +0000 (21:01 +0000)]
When extending the operands of an addrec, iterate through all
the operands, rather than trying to partition them into a start
and a step. This handles non-affine add recurrences correctly.

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

14 years agoDo not hardcode metadata names.
Devang Patel [Mon, 28 Sep 2009 20:56:00 +0000 (20:56 +0000)]
Do not hardcode metadata names.

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

14 years agoAdd a CHECK line to check the position of the second divsd.
Dan Gohman [Mon, 28 Sep 2009 20:48:39 +0000 (20:48 +0000)]
Add a CHECK line to check the position of the second divsd.

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

14 years agoFix Thumb2 IT block pass bug. t2MOVi32imm may not be the start of a IT block.
Evan Cheng [Mon, 28 Sep 2009 20:47:15 +0000 (20:47 +0000)]
Fix Thumb2 IT block pass bug. t2MOVi32imm may not be the start of a IT block.

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

14 years agoUse KILL instead of IMPLICIT_DEF in LowerSubregs pass.
Jakob Stoklund Olesen [Mon, 28 Sep 2009 20:32:46 +0000 (20:32 +0000)]
Use KILL instead of IMPLICIT_DEF in LowerSubregs pass.

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

14 years agoIntroduce the TargetInstrInfo::KILL machine instruction and get rid of the
Jakob Stoklund Olesen [Mon, 28 Sep 2009 20:32:26 +0000 (20:32 +0000)]
Introduce the TargetInstrInfo::KILL machine instruction and get rid of the
unused DECLARE instruction.

KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF
in the places where IMPLICIT_DEF is just used to alter liveness of physical
registers.

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

14 years agoAdd a testcase to help test analysis preservation.
Dan Gohman [Mon, 28 Sep 2009 18:40:27 +0000 (18:40 +0000)]
Add a testcase to help test analysis preservation.

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

14 years agoCreate a README.txt for lib/Analysis, and add an entry.
Dan Gohman [Mon, 28 Sep 2009 18:38:53 +0000 (18:38 +0000)]
Create a README.txt for lib/Analysis, and add an entry.

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

14 years agoRemove dead code.
Devang Patel [Mon, 28 Sep 2009 18:31:56 +0000 (18:31 +0000)]
Remove dead code.

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

14 years agoUse VerifySchedule instead of doing the work manually.
Dan Gohman [Mon, 28 Sep 2009 16:09:41 +0000 (16:09 +0000)]
Use VerifySchedule instead of doing the work manually.

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

14 years agoFix this debug output to handle the case where the loop has been deleted.
Dan Gohman [Mon, 28 Sep 2009 15:40:01 +0000 (15:40 +0000)]
Fix this debug output to handle the case where the loop has been deleted.

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

14 years agoInclude the name of the loop header in debug messages.
Dan Gohman [Mon, 28 Sep 2009 15:07:18 +0000 (15:07 +0000)]
Include the name of the loop header in debug messages.

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

14 years agoRemove a redundant #ifndef and add an assertion string.
Dan Gohman [Mon, 28 Sep 2009 14:38:19 +0000 (14:38 +0000)]
Remove a redundant #ifndef and add an assertion string.

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

14 years agoConvert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.
Dan Gohman [Mon, 28 Sep 2009 14:37:51 +0000 (14:37 +0000)]
Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.

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

14 years agoPass the optimization level when constructing the ARM instruction selector.
Bob Wilson [Mon, 28 Sep 2009 14:30:20 +0000 (14:30 +0000)]
Pass the optimization level when constructing the ARM instruction selector.
Otherwise, it is always set to "default", which prevents debug info from
even being generated during isel.  Radar 7250345.

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

14 years agoMake ARM and Thumb2 32-bit immediate materialization into a single 32-bit pseudo
Evan Cheng [Mon, 28 Sep 2009 09:14:39 +0000 (09:14 +0000)]
Make ARM and Thumb2 32-bit immediate materialization into a single 32-bit pseudo
instruction. This makes it re-materializable.

Thumb2 will split it back out into two instructions so IT pass will generate the
right mask. Also, this expose opportunies to optimize the movw to a 16-bit move.

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

14 years agoDon't traverse into .svn directories.
Daniel Dunbar [Mon, 28 Sep 2009 07:32:45 +0000 (07:32 +0000)]
Don't traverse into .svn directories.

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

14 years agoFix thinko in my recent movt commit: it's not safe to remat movt, since it has input...
Anton Korobeynikov [Mon, 28 Sep 2009 07:26:46 +0000 (07:26 +0000)]
Fix thinko in my recent movt commit: it's not safe to remat movt, since it has input reg argument.
Disable rematting of it for now.

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

14 years agoThe select instruction is not neccesarily in the same block as the
Chris Lattner [Mon, 28 Sep 2009 06:49:44 +0000 (06:49 +0000)]
The select instruction is not neccesarily in the same block as the
phi nodes.  Make sure to phi translate from the right block.

This fixes a llvm-building-llvm failure on GVN-PRE.cpp

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

14 years agoCoalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg of
Evan Cheng [Mon, 28 Sep 2009 05:28:43 +0000 (05:28 +0000)]
Coalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg of
physical registers. This is especially critical for the later two since they
start the live interval of a super-register. e.g.
%DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1
If this instruction is eliminated, the register scavenger will not be happy as
D0 is not defined previously.
This fixes PR5055.

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

14 years agoDocument a bug in the ocaml bindings has wrong linkage values.
Erick Tryzelaar [Mon, 28 Sep 2009 04:42:55 +0000 (04:42 +0000)]
Document a bug in the ocaml bindings has wrong linkage values.

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

14 years agoExpose the rest of the attribute settings.
Erick Tryzelaar [Mon, 28 Sep 2009 04:42:47 +0000 (04:42 +0000)]
Expose the rest of the attribute settings.

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

14 years agoFix a bug in ocaml bindings that has incorrect linkage options.
Erick Tryzelaar [Mon, 28 Sep 2009 04:42:36 +0000 (04:42 +0000)]
Fix a bug in ocaml bindings that has incorrect linkage options.

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

14 years agoRegenerate.
Mikhail Glushenkov [Mon, 28 Sep 2009 01:28:26 +0000 (01:28 +0000)]
Regenerate.

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

14 years agoAdd a way to query the number of input files.
Mikhail Glushenkov [Mon, 28 Sep 2009 01:16:42 +0000 (01:16 +0000)]
Add a way to query the number of input files.

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

14 years agoDocument the 'not' combinator.
Mikhail Glushenkov [Mon, 28 Sep 2009 01:16:07 +0000 (01:16 +0000)]
Document the 'not' combinator.

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

14 years agoA bit prettier formatting.
Mikhail Glushenkov [Mon, 28 Sep 2009 01:15:44 +0000 (01:15 +0000)]
A bit prettier formatting.

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

14 years agoRemove temporary debugging hack.
Dan Gohman [Mon, 28 Sep 2009 00:44:15 +0000 (00:44 +0000)]
Remove temporary debugging hack.

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

14 years agoMove the dominator verification code out of special code embedded within
Dan Gohman [Mon, 28 Sep 2009 00:27:48 +0000 (00:27 +0000)]
Move the dominator verification code out of special code embedded within
the PassManager code into a regular verifyAnalysis method.

Also, reorganize loop verification. Make the LoopPass infrastructure
call verifyLoop as needed instead of having LoopInfo::verifyAnalysis
check every loop in the function after each looop pass. Add a new
command-line argument, -verify-loop-info, to enable the expensive
full checking.

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

14 years agoMove this assert to check the condition as soon as it is known.
Dan Gohman [Mon, 28 Sep 2009 00:10:28 +0000 (00:10 +0000)]
Move this assert to check the condition as soon as it is known.

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