Chris Lattner [Mon, 5 Oct 2009 07:07:29 +0000 (07:07 +0000)]
callgraph changes came after the 2.6 branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83299
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:54:46 +0000 (05:54 +0000)]
strength reduce a ton of type equality tests to check the typeid (Through
the new predicates I added) instead of going through a context and doing a
pointer comparison. Besides being cheaper, this allows a smart compiler
to turn the if sequence into a switch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:48:40 +0000 (05:48 +0000)]
add more type predicates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83296
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:26:04 +0000 (05:26 +0000)]
teach the optimizer how to constant fold uadd/usub intrinsics.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83295
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:06:24 +0000 (05:06 +0000)]
simplify this code a bunch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83294
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:05:57 +0000 (05:05 +0000)]
add some helper functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83293
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 05:00:35 +0000 (05:00 +0000)]
code simplifications.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83292
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Mon, 5 Oct 2009 02:51:06 +0000 (02:51 +0000)]
Move implicit and paralle to a separate codegen specific section.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83291
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 02:47:47 +0000 (02:47 +0000)]
instcombine shouldn't delete all null checks for mallocs.
This fixes PR5130.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83290
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 02:35:05 +0000 (02:35 +0000)]
stop MachineFunctionPass from claiming that it preserves LoopDependence info,
which causes dependence info to be linked into lli.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83289
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 02:29:51 +0000 (02:29 +0000)]
remove llvm-db: it is completely broken and if anyone wants to do a debugger,
they should not base it on llvm-db (which not following almost any "best practices").
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83288
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 5 Oct 2009 02:12:39 +0000 (02:12 +0000)]
add some completely unformated and probably incoherent notes about things
I saw while reading all the commits between the 2.5 and 2.6 release branches.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83287
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 4 Oct 2009 18:49:55 +0000 (18:49 +0000)]
Do away with the strange use of BitVectors in SSI, and just use normal sets. This makes the code much more C++/LLVM-ish.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83286
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sun, 4 Oct 2009 18:18:39 +0000 (18:18 +0000)]
Whitespace and formatting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83285
91177308-0d34-0410-b5e6-
96231b3b80d8
Jakob Stoklund Olesen [Sun, 4 Oct 2009 17:54:36 +0000 (17:54 +0000)]
Remove trailing whitespace from build output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83284
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 4 Oct 2009 17:52:13 +0000 (17:52 +0000)]
Fix a typo in the comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83283
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Sun, 4 Oct 2009 17:47:39 +0000 (17:47 +0000)]
SSI needs to require DT and DF transitively, since it uses them outside of its runOnFunction.
Similarly, it can be marked setPreservesAll, since it does no work in its runOnFunction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83282
91177308-0d34-0410-b5e6-
96231b3b80d8
Oscar Fuentes [Sun, 4 Oct 2009 06:24:57 +0000 (06:24 +0000)]
CMake: remove .so file extension from library names when building
dependency info.
Patch by Peter Collingbourne!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83275
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 4 Oct 2009 06:13:54 +0000 (06:13 +0000)]
Allow -inline-threshold override default threshold even if compiling to optimize for size.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83274
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Sun, 4 Oct 2009 05:25:42 +0000 (05:25 +0000)]
Rename enum NumOccurrences to NumOccurrencesFlag since there is a member named NumOccurrences.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83273
91177308-0d34-0410-b5e6-
96231b3b80d8
Nick Lewycky [Sat, 3 Oct 2009 19:30:43 +0000 (19:30 +0000)]
Requires element types in a constant initializer to match the element types of
of the constant. This reverts r6544 and r7428.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83270
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 3 Oct 2009 04:44:16 +0000 (04:44 +0000)]
Add a comment to describe letters used in multiclass name suffixes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83257
91177308-0d34-0410-b5e6-
96231b3b80d8
Bob Wilson [Sat, 3 Oct 2009 04:41:21 +0000 (04:41 +0000)]
Fix encoding problem for VMLS instruction.
Thanks to Johnny Chen for pointing this out!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83256
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 3 Oct 2009 04:31:31 +0000 (04:31 +0000)]
Oops. Renamed remaining MachineInstrIndex references.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83255
91177308-0d34-0410-b5e6-
96231b3b80d8
Lang Hames [Sat, 3 Oct 2009 04:21:37 +0000 (04:21 +0000)]
Renamed MachineInstrIndex to LiveIndex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83254
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 2 Oct 2009 19:52:33 +0000 (19:52 +0000)]
Try to fix unit test linking on linux ...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83252
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 2 Oct 2009 19:36:31 +0000 (19:36 +0000)]
MingW build fixes
- MingW needs -lpsapi (in ${LIBS}) linked after -lLLVMSystem.
Noticed by Ronald Pijnacker!
- Some parts of the System library must be build with exceptions on windows.
Based on a patch by Jay Foad!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83251
91177308-0d34-0410-b5e6-
96231b3b80d8
Benjamin Kramer [Fri, 2 Oct 2009 15:59:52 +0000 (15:59 +0000)]
Fix a use-after-free in post-ra-scheduling.
MI->addOperand invalidates references to it's operands, avoid touching
the operand after a new one was added.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83249
91177308-0d34-0410-b5e6-
96231b3b80d8
Torok Edwin [Fri, 2 Oct 2009 09:30:03 +0000 (09:30 +0000)]
Fix make rule when objdir is inside srcdir.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83243
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 06:57:25 +0000 (06:57 +0000)]
getFunctionAlignment should return log2 alignment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83242
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 06:53:57 +0000 (06:53 +0000)]
Fix tests.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83241
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 06:50:50 +0000 (06:50 +0000)]
Fix test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83240
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 06:07:47 +0000 (06:07 +0000)]
C++ member functions must be 2 byte aligned per ABI.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83239
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 05:03:07 +0000 (05:03 +0000)]
Forgot about ARM::tPUSH. It also has a new writeback operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83237
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 04:57:15 +0000 (04:57 +0000)]
Move load / store multiple before post-alloc scheduling.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83236
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Fri, 2 Oct 2009 04:45:37 +0000 (04:45 +0000)]
Test case for aligned attribute on function declaration.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83234
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 1 Oct 2009 23:28:47 +0000 (23:28 +0000)]
All callee-saved registers are live-out of a return block.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83223
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 1 Oct 2009 22:19:57 +0000 (22:19 +0000)]
Remove neonfp attribute and instead set default based on CPU string. Add -arm-use-neon-fp to override the default.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83218
91177308-0d34-0410-b5e6-
96231b3b80d8
Mike Stump [Thu, 1 Oct 2009 22:08:58 +0000 (22:08 +0000)]
Expand api out in the usual inserter way, though, I do have a
question, can we get rid of the BasicBlock versions of all inserters
and use Head == 0 to indicate the old case when GetInsertBlock == 0?
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83216
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 1 Oct 2009 21:46:35 +0000 (21:46 +0000)]
Restore the -post-RA-scheduler flag as an override for the target specification. Remove -mattr for setting PostRAScheduler enable and instead use CPU string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83215
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 1 Oct 2009 20:54:53 +0000 (20:54 +0000)]
ARM::tPOP and tPOP_RET each has an extra writeback operand now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83214
91177308-0d34-0410-b5e6-
96231b3b80d8
Jim Grosbach [Thu, 1 Oct 2009 20:45:06 +0000 (20:45 +0000)]
remove trailing whitespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83213
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Oct 2009 20:31:14 +0000 (20:31 +0000)]
Add support to extract lexical scope information from DebugLoc attached with an machine instruction.
This is not yet enabled.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83210
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 1 Oct 2009 19:45:32 +0000 (19:45 +0000)]
Use MachineFrameInfo.getPristineRegs() to determine which callee-saved registers are available for anti-dependency breaking. Some cleanup.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83208
91177308-0d34-0410-b5e6-
96231b3b80d8
Devang Patel [Thu, 1 Oct 2009 18:25:23 +0000 (18:25 +0000)]
Record first and last instruction of a scope in DbgScope.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83207
91177308-0d34-0410-b5e6-
96231b3b80d8
Dan Gohman [Thu, 1 Oct 2009 17:39:52 +0000 (17:39 +0000)]
Don't use identifiers that start with an underscore followed
by a capital letter, which invokes undefined behavior.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83206
91177308-0d34-0410-b5e6-
96231b3b80d8
Douglas Gregor [Thu, 1 Oct 2009 17:25:36 +0000 (17:25 +0000)]
Teach CMake to look for bidirectional_iterator, iterator, forward_iterator, uint64_t, and u_int64_t, from Yonggang Luo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83203
91177308-0d34-0410-b5e6-
96231b3b80d8
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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