Dan Gohman
ea0bb8f555
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.
llvm-svn: 83166
2009-09-30 20:54:16 +00:00
Reid Kleckner
cea8dab1d1
Silence comparison always false warning in -Asserts mode.
...
llvm-svn: 83164
2009-09-30 20:43:07 +00:00
Jim Grosbach
c87197784a
Add additional assert() to verify no extraneous use of a scavenged register.
...
llvm-svn: 83163
2009-09-30 20:35:36 +00:00
Devang Patel
711ab5b8ec
Print tag name for MDNodes that are used to encode debug info.
...
llvm-svn: 83160
2009-09-30 20:16:54 +00:00
Reid Kleckner
8ff5c19ebd
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.
llvm-svn: 83159
2009-09-30 20:15:38 +00:00
Devang Patel
7ba3c0906b
Silence unused variable warning.
...
llvm-svn: 83151
2009-09-30 17:13:41 +00:00
Jim Grosbach
a2fe1a6811
Clarify comment phrasing.
...
llvm-svn: 83148
2009-09-30 15:23:38 +00:00
Evan Cheng
ce5a8ca3ef
Add a option which would move ld/st multiple pass before post-alloc scheduling.
...
llvm-svn: 83145
2009-09-30 08:53:01 +00:00
Evan Cheng
f305ead1cc
Add a target hook to add pre- post-regalloc scheduling passes.
...
llvm-svn: 83144
2009-09-30 08:49:50 +00:00
Evan Cheng
3ea1ba7739
Forgot this test earlier.
...
llvm-svn: 83143
2009-09-30 08:41:27 +00:00
Chris Lattner
d6248143fa
add macruby, fix a validation problem.
...
llvm-svn: 83142
2009-09-30 06:27:22 +00:00
Nick Lewycky
6d59690c3e
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.
llvm-svn: 83141
2009-09-30 04:50:26 +00:00
Jim Grosbach
882f4c11ed
replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister()
...
per customary usage
llvm-svn: 83137
2009-09-30 01:47:59 +00:00
Jim Grosbach
70ce8a03b1
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.
llvm-svn: 83136
2009-09-30 01:43:29 +00:00
Jim Grosbach
bcad0c8421
Add "isBarrier = 1" to return instructions.
...
Patch by Sylvere Teissier.
llvm-svn: 83135
2009-09-30 01:35:11 +00:00
Jim Grosbach
cdd3e35005
fix compiler warning
...
llvm-svn: 83132
2009-09-30 00:37:40 +00:00
David Goodwin
8dc2f6fefa
Remove regression that requires post-RA scheduling from a target that does not use that scheduler.
...
llvm-svn: 83128
2009-09-30 00:23:57 +00:00
Bob Wilson
20e5f5ed79
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.
llvm-svn: 83127
2009-09-30 00:23:42 +00:00
Devang Patel
c2105298cc
Simplify.
...
llvm-svn: 83123
2009-09-30 00:14:40 +00:00
David Goodwin
17199b56b0
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.
...
llvm-svn: 83122
2009-09-30 00:10:16 +00:00
Douglas Gregor
aa0beea9a1
Forward-declare ValueSymbolTable so that SymbolTableListTraits.h can be parsed by itself
...
llvm-svn: 83121
2009-09-30 00:08:25 +00:00
Mike Stump
14cf8ecf0b
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.
llvm-svn: 83120
2009-09-30 00:08:22 +00:00
Jim Grosbach
fa6847f099
minor cleanup and add clarifying comment
...
llvm-svn: 83117
2009-09-29 23:17:20 +00:00
Devang Patel
7b4d52b170
Lookup handler name only when assertions are enabled.
...
llvm-svn: 83114
2009-09-29 22:05:52 +00:00
Devang Patel
b4034364d6
Add removeMD().
...
llvm-svn: 83107
2009-09-29 20:42:25 +00:00
Devang Patel
5bf7a49fd7
Only one custom meadata of each kind can be attached with an instruction.
...
llvm-svn: 83105
2009-09-29 20:30:57 +00:00
Jim Grosbach
3ea3fe6594
Additional check for regno==0
...
llvm-svn: 83103
2009-09-29 20:11:10 +00:00
Devang Patel
561977940c
Use assertion instead of early exit to catch malformed custom metadata store.
...
llvm-svn: 83102
2009-09-29 20:01:19 +00:00
Devang Patel
5d58383ea9
Remove unnecessary cast.
...
llvm-svn: 83100
2009-09-29 19:56:13 +00:00
Devang Patel
b296942f6d
Remove std::string uses from DebugInfo interface.
...
llvm-svn: 83083
2009-09-29 18:40:58 +00:00
Devang Patel
73e8d43588
Create empty StringRef is incoming cstring is NULL.
...
llvm-svn: 83082
2009-09-29 18:39:56 +00:00
Jim Grosbach
a4a7f44cb5
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.
llvm-svn: 83081
2009-09-29 18:23:15 +00:00
Jim Grosbach
8fc22227bb
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.
llvm-svn: 83077
2009-09-29 17:24:37 +00:00
David Goodwin
bef958c716
Post-RA regressions.
...
llvm-svn: 83075
2009-09-29 17:10:26 +00:00
Evan Cheng
139c3dba53
Fix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.
...
llvm-svn: 83058
2009-09-29 07:07:30 +00:00
Nick Lewycky
9b3f71600a
Regenerate.
...
llvm-svn: 83052
2009-09-29 06:18:23 +00:00
Nick Lewycky
fa4c2d3baf
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.
llvm-svn: 83051
2009-09-29 06:18:00 +00:00
Nick Lewycky
c5975fce2b
Roll back r83048.
...
llvm-svn: 83050
2009-09-29 05:48:51 +00:00
Nick Lewycky
a2b1ac2a93
Regenerate.
...
llvm-svn: 83048
2009-09-29 05:41:21 +00:00
Nick Lewycky
90df990f73
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.
llvm-svn: 83047
2009-09-29 05:40:45 +00:00
Devang Patel
ba4a6fdd17
Parse custom metadata attached with an instruction.
...
llvm-svn: 83033
2009-09-29 00:01:14 +00:00
Stuart Hastings
69d64f8e60
B&I's buildit forces a PATH that omits /Developer. Temporarily add
...
/Developer/usr/bin to the PATH when looking for llvm-gcc.
llvm-svn: 83028
2009-09-28 23:42:38 +00:00
Stuart Hastings
9df3d6d448
For B&I-style builds, tweak build_llvm script to prefer LLVM-G++ if
...
available. Override by setting CC and CXX in the environment.
llvm-svn: 83024
2009-09-28 22:17:53 +00:00
Jim Grosbach
5264202a38
Adjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stack
...
slot for the register scavenger when compiling Thumb1 functions.
llvm-svn: 83023
2009-09-28 22:08:06 +00:00
Dan Gohman
f919bd6651
Add C API calls for building FNeg operations. Patch by KS Sreeram!
...
llvm-svn: 83021
2009-09-28 21:51:41 +00:00
Devang Patel
2d85eef974
s/class Metadata/class MetadataContext/g
...
llvm-svn: 83019
2009-09-28 21:41:20 +00:00
Devang Patel
b1a4477f1f
Do not use global typedef for MDKindID.
...
llvm-svn: 83016
2009-09-28 21:14:55 +00:00
Jeffrey Yasskin
ed31cc2a99
Forgot to update the documentation in r82906. s/DEBUG_RUNTIME/DEBUG_SYMBOLS/.
...
llvm-svn: 83015
2009-09-28 21:14:38 +00:00
Devang Patel
1709e8c084
Remove unnecessary include.
...
llvm-svn: 83013
2009-09-28 21:06:38 +00:00
Dan Gohman
82ef61857e
Add a testcase for r83011.
...
llvm-svn: 83012
2009-09-28 21:03:02 +00:00