oota-llvm.git
14 years agoassert(0) -> LLVM_UNREACHABLE.
Torok Edwin [Sat, 11 Jul 2009 20:10:48 +0000 (20:10 +0000)]
assert(0) -> LLVM_UNREACHABLE.
Make llvm_unreachable take an optional string, thus moving the cerr<< out of
line.
LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for
NDEBUG builds.

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

14 years agoStub out assembly matcher (.s -> MCInst) tblgen backend.
Daniel Dunbar [Sat, 11 Jul 2009 19:39:44 +0000 (19:39 +0000)]
Stub out assembly matcher (.s -> MCInst) tblgen backend.

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

14 years agoRegenerate.
Mikhail Glushenkov [Sat, 11 Jul 2009 19:28:00 +0000 (19:28 +0000)]
Regenerate.

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

14 years agoUpdate documentation.
Mikhail Glushenkov [Sat, 11 Jul 2009 19:27:40 +0000 (19:27 +0000)]
Update documentation.

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

14 years agoDelete the temp dir even when '--temp-dir' is specified.
Mikhail Glushenkov [Sat, 11 Jul 2009 19:27:07 +0000 (19:27 +0000)]
Delete the temp dir even when '--temp-dir' is specified.

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

14 years agoFix handling of max and full set.
Nick Lewycky [Sat, 11 Jul 2009 19:22:21 +0000 (19:22 +0000)]
Fix handling of max and full set.

A full set is a constant range that represents any number. If you take the
umax of that and [5, 10) you end up with [5, INT_MAX] because the values less
than 5 would be umax's against a value which is at least 5.

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

14 years agoimprove filecheck's "scanning from here" caret position.
Chris Lattner [Sat, 11 Jul 2009 19:21:09 +0000 (19:21 +0000)]
improve filecheck's "scanning from here" caret position.

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

14 years agomake filecheck default to canonicalizing horizontal whitespace
Chris Lattner [Sat, 11 Jul 2009 18:58:15 +0000 (18:58 +0000)]
make filecheck default to canonicalizing horizontal whitespace
away.  This way you can write a space and it matches arbitrary spaces and tabs.

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

14 years agoBreak the world's largest unit test down a few logical lines. No semantic
Nick Lewycky [Sat, 11 Jul 2009 18:43:20 +0000 (18:43 +0000)]
Break the world's largest unit test down a few logical lines. No semantic
changes.

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

14 years agoErase the temp dir before starting.
Sanjiv Gupta [Sat, 11 Jul 2009 17:35:46 +0000 (17:35 +0000)]
Erase the temp dir before starting.

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

14 years agoClarify and simplify.
Nick Lewycky [Sat, 11 Jul 2009 17:04:01 +0000 (17:04 +0000)]
Clarify and simplify.

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

14 years agoDon't use a void return type with a function that returns a value.
Dan Gohman [Sat, 11 Jul 2009 13:56:14 +0000 (13:56 +0000)]
Don't use a void return type with a function that returns a value.

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

14 years agoConvert more assert(0)+abort() -> LLVM_UNREACHABLE,
Torok Edwin [Sat, 11 Jul 2009 13:10:19 +0000 (13:10 +0000)]
Convert more assert(0)+abort() -> LLVM_UNREACHABLE,
and abort()/exit() -> llvm_report_error().

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

14 years agoWe get the P modifier wrong in a lot of cases, just add some more rigorous testing.
Chris Lattner [Sat, 11 Jul 2009 08:30:22 +0000 (08:30 +0000)]
We get the P modifier wrong in a lot of cases, just add some more rigorous testing.
In addition to fixing this, I still need to do some more testing on darwin.

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

14 years agoDon't put IT instruction before conditional branches.
Evan Cheng [Sat, 11 Jul 2009 07:26:20 +0000 (07:26 +0000)]
Don't put IT instruction before conditional branches.

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

14 years agoSmarter isel of ldrsb / ldrsh. Only make use of these when [r,r] address is feasible.
Evan Cheng [Sat, 11 Jul 2009 07:08:13 +0000 (07:08 +0000)]
Smarter isel of ldrsb / ldrsh. Only make use of these when [r,r] address is feasible.

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

14 years agoMajor changes to Thumb (not Thumb2). Many 16-bit instructions either modifies CPSR...
Evan Cheng [Sat, 11 Jul 2009 06:43:01 +0000 (06:43 +0000)]
Major changes to Thumb (not Thumb2). Many 16-bit instructions either modifies CPSR  when they are outside the IT blocks, or they can predicated when in Thumb2. Move the implicit def of CPSR to an optional def which defaults CPSR. This allows the 's' bit to be toggled dynamically.

A side-effect of this change is asm printer is now using unified assembly. There are some minor clean ups and fixes as well.

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

14 years ago80 col violation.
Evan Cheng [Sat, 11 Jul 2009 06:37:27 +0000 (06:37 +0000)]
80 col violation.

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

14 years agoMove a method that creates constant ranges relative to another constant range
Nick Lewycky [Sat, 11 Jul 2009 06:15:39 +0000 (06:15 +0000)]
Move a method that creates constant ranges relative to another constant range
per icmp predicate out of predsimplify and into ConstantRange.

Add another utility method that determines whether one range is a subset of
another. Combine with the former to determine whether icmp pred range, range
is known to be true or not.

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

14 years agoFix up support for OptionalDefOperand when it defaults to an actual register def...
Evan Cheng [Sat, 11 Jul 2009 01:06:50 +0000 (01:06 +0000)]
Fix up support for OptionalDefOperand when it defaults to an actual register def. I need this to get ready for major Thumb1 surgery.

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

14 years agoUse CreateStackStoreLoad helper in more places.
Eli Friedman [Sat, 11 Jul 2009 00:11:07 +0000 (00:11 +0000)]
Use CreateStackStoreLoad helper in more places.

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

14 years agoTwo-address pass should use findCommutedOpIndices to determine what registers are...
Evan Cheng [Sat, 11 Jul 2009 00:04:23 +0000 (00:04 +0000)]
Two-address pass should use findCommutedOpIndices to determine what registers are commuted.

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

14 years agoUse findCommutedOpIndices to find the operands to commute.
Evan Cheng [Fri, 10 Jul 2009 23:26:12 +0000 (23:26 +0000)]
Use findCommutedOpIndices to find the operands to commute.

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

14 years agoAdd superclasses of ARM Neon quad registers. The Q2PR class contains pairs of
Bob Wilson [Fri, 10 Jul 2009 23:09:06 +0000 (23:09 +0000)]
Add superclasses of ARM Neon quad registers.  The Q2PR class contains pairs of
quad registers and the Q4PR class holds sets of 4 quad registers.

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

14 years agoAdd new vector types for 192-bit, 348-bit and 512-bit sizes.
Bob Wilson [Fri, 10 Jul 2009 23:05:09 +0000 (23:05 +0000)]
Add new vector types for 192-bit, 348-bit and 512-bit sizes.
These are needed to represent ARM Neon struct datatypes containing 2, 3 or 4
separate vectors.

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

14 years agoremove the "debug" modifier, it is only used by one instruction which can
Chris Lattner [Fri, 10 Jul 2009 22:34:11 +0000 (22:34 +0000)]
remove the "debug" modifier, it is only used by one instruction which can
never be generated.

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

14 years agoRefactor TableGen's llvm::getName to share code with llvm::getEnumName,
Bob Wilson [Fri, 10 Jul 2009 22:25:24 +0000 (22:25 +0000)]
Refactor TableGen's llvm::getName to share code with llvm::getEnumName,
since names are the same for almost all the types.

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

14 years agoadd support for .zerofill, patch by Kevin Enderby!
Chris Lattner [Fri, 10 Jul 2009 22:20:30 +0000 (22:20 +0000)]
add support for .zerofill, patch by Kevin Enderby!

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

14 years agoOops. s/#if defined(USE_OPROFILE)/#if USE_OPROFILE/. We #define
Jeffrey Yasskin [Fri, 10 Jul 2009 22:13:21 +0000 (22:13 +0000)]
Oops. s/#if defined(USE_OPROFILE)/#if USE_OPROFILE/. We #define
USE_OPROFILE to 0 on some paths through configure, which does the
wrong thing with #if defined().

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

14 years agomake pcrel and non-pcrel global printing more similar.
Chris Lattner [Fri, 10 Jul 2009 21:57:21 +0000 (21:57 +0000)]
make pcrel and non-pcrel global printing more similar.

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

14 years agoSupport remote execute for ARM.
David Goodwin [Fri, 10 Jul 2009 21:39:28 +0000 (21:39 +0000)]
Support remote execute for ARM.

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

14 years agoUndo my brain cramp.
Evan Cheng [Fri, 10 Jul 2009 21:31:42 +0000 (21:31 +0000)]
Undo my brain cramp.

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

14 years agoMake changes suggested by Chris and eliminate newly-added raw_ostream
David Greene [Fri, 10 Jul 2009 21:14:44 +0000 (21:14 +0000)]
Make changes suggested by Chris and eliminate newly-added raw_ostream
hooks as they're no longer needed.

The major change with this patch is to make formatted_raw_ostream usable
by any client of raw_ostream.

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

14 years agoRegenerate configure after r75279.
Jeffrey Yasskin [Fri, 10 Jul 2009 21:09:55 +0000 (21:09 +0000)]
Regenerate configure after r75279.

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

14 years agoAdd a --with-oprofile flag to configure, which uses OProfile's agent
Jeffrey Yasskin [Fri, 10 Jul 2009 21:08:20 +0000 (21:08 +0000)]
Add a --with-oprofile flag to configure, which uses OProfile's agent
library to tell it the addresses of JITted functions.  For a
particular program, this changes the opreport -l output from:

samples %    image name        symbol name
48182  98.9729 anon (tgid:19412 range:0x7f12ccaab000-0x7f12cdaab000) anon (tgid:19412 range:0x7f12ccaab000-0x7f12cdaab000)
11     0.0226  libstdc++.so.6.0.9    /usr/lib/libstdc++.so.6.0.9

to:

samples %    image name        symbol name
24565  60.7308 19814.jo        fib_left
15365  37.9861 19814.jo        fib_right
22     0.0544  ld-2.7.so       do_lookup_x

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

14 years agocode model is never set to default.
Chris Lattner [Fri, 10 Jul 2009 21:03:06 +0000 (21:03 +0000)]
code model is never set to default.

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

14 years agofix indentation
Chris Lattner [Fri, 10 Jul 2009 21:01:59 +0000 (21:01 +0000)]
fix indentation

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

14 years agoremove the now-dead TM argument to these methods.
Chris Lattner [Fri, 10 Jul 2009 21:00:45 +0000 (21:00 +0000)]
remove the now-dead TM argument to these methods.

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

14 years agomake PIC vs DynamicNoPIC be explicit in PICStyles.
Chris Lattner [Fri, 10 Jul 2009 20:58:47 +0000 (20:58 +0000)]
make PIC vs DynamicNoPIC be explicit in PICStyles.

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

14 years agosome minor simplifications.
Chris Lattner [Fri, 10 Jul 2009 20:53:38 +0000 (20:53 +0000)]
some minor simplifications.

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

14 years agoadd a couple of predicates to test for "stub style pic in PIC mode" and "stub style...
Chris Lattner [Fri, 10 Jul 2009 20:47:30 +0000 (20:47 +0000)]
add a couple of predicates to test for "stub style pic in PIC mode" and "stub style pic in dynamic-no-pic" mode.

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

14 years agoRemove ScalarEvolution::hasSCEV, which isn't being used, and which
Dan Gohman [Fri, 10 Jul 2009 20:25:29 +0000 (20:25 +0000)]
Remove ScalarEvolution::hasSCEV, which isn't being used, and which
breaks encapsulation. Also remove a dead prototype for setSCEV.

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

14 years agoAvoid compiler warnings when assertions are turned off.
Duncan Sands [Fri, 10 Jul 2009 20:10:14 +0000 (20:10 +0000)]
Avoid compiler warnings when assertions are turned off.

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

14 years agoAvoid compiler warnings if assertions turned off.
Duncan Sands [Fri, 10 Jul 2009 20:07:07 +0000 (20:07 +0000)]
Avoid compiler warnings if assertions turned off.

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

14 years agoCMOVxx doesn't swap operands which it's commuted.
Evan Cheng [Fri, 10 Jul 2009 19:26:57 +0000 (19:26 +0000)]
CMOVxx doesn't swap operands which it's commuted.

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

14 years agoRemove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices...
Evan Cheng [Fri, 10 Jul 2009 19:15:51 +0000 (19:15 +0000)]
Remove TargetInstrInfo::CommuteChangesDestination and added findCommutedOpIndices which returns the operand indices which are swapped (when applicable). This allows for some code clean up and future enhancements.

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

14 years agoLink std.lib (.bc code) with llvm-ld.
Sanjiv Gupta [Fri, 10 Jul 2009 19:04:05 +0000 (19:04 +0000)]
Link std.lib (.bc code) with llvm-ld.
Link devices.lib (processor specific variables) with mplink.

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

14 years agoFix unit tests.
Owen Anderson [Fri, 10 Jul 2009 18:58:29 +0000 (18:58 +0000)]
Fix unit tests.

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

14 years agoconvert test to use FileCheck, which is much more precise and faster than
Chris Lattner [Fri, 10 Jul 2009 18:34:47 +0000 (18:34 +0000)]
convert test to use FileCheck, which is much more precise and faster than
the previous RUN lines.  Hopefully this will be an inspiration for future
tests :)

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

14 years agoadd missing *, patch by Peter O'Gorman!
Chris Lattner [Fri, 10 Jul 2009 18:28:19 +0000 (18:28 +0000)]
add missing *, patch by Peter O'Gorman!

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

14 years agoPush LLVMContext through the TypeBuilder API. There are no users for this in-tree...
Owen Anderson [Fri, 10 Jul 2009 18:10:10 +0000 (18:10 +0000)]
Push LLVMContext through the TypeBuilder API.  There are no users for this in-tree, so I can't really test it.
If you're using this, and it's broken, please send patches.

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

14 years agoEliminate an unnecessary include.
David Greene [Fri, 10 Jul 2009 17:55:38 +0000 (17:55 +0000)]
Eliminate an unnecessary include.

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

14 years agoPush LLVMContext through the PatternMatch API.
Owen Anderson [Fri, 10 Jul 2009 17:35:01 +0000 (17:35 +0000)]
Push LLVMContext through the PatternMatch API.

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

14 years agoPredicate VFP instructions on HasVFP2 instead of IsARM. This allows VFP instructions...
David Goodwin [Fri, 10 Jul 2009 17:03:29 +0000 (17:03 +0000)]
Predicate VFP instructions on HasVFP2 instead of IsARM. This allows VFP instructions with thumb-2.

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

14 years agoGeneralize ScalarEvolution's cast-folding code to support more kinds
Dan Gohman [Fri, 10 Jul 2009 16:42:52 +0000 (16:42 +0000)]
Generalize ScalarEvolution's cast-folding code to support more kinds
of loops. Add several new functions to for working with ScalarEvolution's
add-hoc value-range analysis functionality.

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

14 years agoUpdate for GlobalVariables ctor change.
Owen Anderson [Fri, 10 Jul 2009 16:42:19 +0000 (16:42 +0000)]
Update for GlobalVariables ctor change.

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

14 years agot2LDM_RET does not fall-through.
David Goodwin [Fri, 10 Jul 2009 15:33:46 +0000 (15:33 +0000)]
t2LDM_RET does not fall-through.

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

14 years agoAdd Thumb2ITBlockPass.cpp to CMakeLists.txt, fixing
Duncan Sands [Fri, 10 Jul 2009 08:31:50 +0000 (08:31 +0000)]
Add Thumb2ITBlockPass.cpp to CMakeLists.txt, fixing
the cmake build.

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

14 years agomake this more like printOperand. Perhaps some merging will happen
Chris Lattner [Fri, 10 Jul 2009 07:50:52 +0000 (07:50 +0000)]
make this more like printOperand.  Perhaps some merging will happen
tomorrow.

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

14 years agosimplify fast isel by using ClassifyGlobalReference. This
Chris Lattner [Fri, 10 Jul 2009 07:48:51 +0000 (07:48 +0000)]
simplify fast isel by using ClassifyGlobalReference. This
elimiantes the last use of GVRequiresExtraLoad, so delete it.

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

14 years agoeliminate GVRequiresRegister, replacing it with predicates we
Chris Lattner [Fri, 10 Jul 2009 07:38:24 +0000 (07:38 +0000)]
eliminate GVRequiresRegister, replacing it with predicates we
need for other purposes.

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

14 years agochange a bunch of logic in LowerGlobalAddress to leverage the work
Chris Lattner [Fri, 10 Jul 2009 07:34:39 +0000 (07:34 +0000)]
change a bunch of logic in LowerGlobalAddress to leverage the work
done in ClassifyGlobalReference instead of reconstructing the info
awkwardly.

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

14 years agoadd a predicate to determine if a global var reference requires a
Chris Lattner [Fri, 10 Jul 2009 07:33:30 +0000 (07:33 +0000)]
add a predicate to determine if a global var reference requires a
PIC-base to be added in.

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

14 years agomove some classification logic around. Now GVRequiresExtraLoad
Chris Lattner [Fri, 10 Jul 2009 07:20:05 +0000 (07:20 +0000)]
move some classification logic around.  Now GVRequiresExtraLoad
is just a trivial wrapper around "ClassifyGlobalReference", which
stole a ton of logic from LowerGlobalAddress.

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

14 years agochange isGlobalStubReference to take target flags instead of a MachineOperand.
Chris Lattner [Fri, 10 Jul 2009 06:29:59 +0000 (06:29 +0000)]
change isGlobalStubReference to take target flags instead of a MachineOperand.

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

14 years agoconvert some late code (called by regalloc and code emission)
Chris Lattner [Fri, 10 Jul 2009 06:07:08 +0000 (06:07 +0000)]
convert some late code (called by regalloc and code emission)
to use isGlobalStubReference instead of GVRequiresExtraLoad
(which should really be part of isel).

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

14 years agoadd a new predicate method that says whether a GlobalValue
Chris Lattner [Fri, 10 Jul 2009 06:06:17 +0000 (06:06 +0000)]
add a new predicate method that says whether a GlobalValue
MachineOperand is a reference to a stub, not a reference to the
global variable itself.  Look no context needed!

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

14 years agoGVRequiresExtraLoad is now never used for calls, simplify it based on this.
Chris Lattner [Fri, 10 Jul 2009 05:52:02 +0000 (05:52 +0000)]
GVRequiresExtraLoad is now never used for calls, simplify it based on this.

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

14 years agoactually, just eliminate PCRelGVRequiresExtraLoad. It makes the code
Chris Lattner [Fri, 10 Jul 2009 05:48:03 +0000 (05:48 +0000)]
actually, just eliminate PCRelGVRequiresExtraLoad.  It makes the code
more complex and slow than just directly testing what we care about.

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

14 years agoThere is only one case where GVRequiresExtraLoad returns true for calls:
Chris Lattner [Fri, 10 Jul 2009 05:45:15 +0000 (05:45 +0000)]
There is only one case where GVRequiresExtraLoad returns true for calls:
split its handling out to PCRelGVRequiresExtraLoad, and simplify code
based on this.

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

14 years agothe "isDirectCall" operand of GVRequiresRegister is always false, eliminate it.
Chris Lattner [Fri, 10 Jul 2009 05:37:11 +0000 (05:37 +0000)]
the "isDirectCall" operand of GVRequiresRegister is always false, eliminate it.

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

14 years agosplit call handling out of X86SelectAddress into X86SelectCallAddress
Chris Lattner [Fri, 10 Jul 2009 05:33:42 +0000 (05:33 +0000)]
split call handling out of X86SelectAddress into X86SelectCallAddress

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

14 years agoconvert a helper method to be a static function instead of a
Chris Lattner [Fri, 10 Jul 2009 05:27:43 +0000 (05:27 +0000)]
convert a helper method to be a static function instead of a
template.  Also convert it to take a MachineOperand instead of a GV*

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

14 years ago80 col violation.
Evan Cheng [Fri, 10 Jul 2009 05:20:19 +0000 (05:20 +0000)]
80 col violation.

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

14 years agoMore info about Thumb1 predication support.
Evan Cheng [Fri, 10 Jul 2009 02:10:17 +0000 (02:10 +0000)]
More info about Thumb1 predication support.

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

14 years agoWe don't need separate thumb1 instructions tADDSi3 etc. for addc and subc. The "norma...
Evan Cheng [Fri, 10 Jul 2009 02:09:04 +0000 (02:09 +0000)]
We don't need separate thumb1 instructions tADDSi3 etc. for addc and subc. The "normal" version always modify condition register CPSR so we should just use def : pat to match to the same instructions.

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

14 years agoAdd a thumb2 pass to insert IT blocks.
Evan Cheng [Fri, 10 Jul 2009 01:54:42 +0000 (01:54 +0000)]
Add a thumb2 pass to insert IT blocks.

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

14 years agoMove isPredicated from .cpp to .h
Evan Cheng [Fri, 10 Jul 2009 01:38:27 +0000 (01:38 +0000)]
Move isPredicated from .cpp to .h

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

14 years agoFinish pushing LLVMContext through the IRBuilder/ConstantFolder interface.
Owen Anderson [Fri, 10 Jul 2009 00:49:53 +0000 (00:49 +0000)]
Finish pushing LLVMContext through the IRBuilder/ConstantFolder interface.

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

14 years ago80 col violation.
Evan Cheng [Fri, 10 Jul 2009 00:45:16 +0000 (00:45 +0000)]
80 col violation.

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

14 years agoFix #include specification.
David Greene [Fri, 10 Jul 2009 00:34:39 +0000 (00:34 +0000)]
Fix #include specification.

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

14 years agoImmutableMap/ImmutableSet: Allow caching of ImutAVLTree digests while the tree
Ted Kremenek [Fri, 10 Jul 2009 00:33:43 +0000 (00:33 +0000)]
ImmutableMap/ImmutableSet: Allow caching of ImutAVLTree digests while the tree
is still mutable. My experiments show this reduces the amount of times we
compute a full tree digest by over 50% on very small cases, and potentially much
larger on others.

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

14 years agoRemove a bogus assertion.
Evan Cheng [Fri, 10 Jul 2009 00:23:48 +0000 (00:23 +0000)]
Remove a bogus assertion.

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

14 years agoReplace TM.getRegisterInfo() calls by TRI instance variable.
Bob Wilson [Fri, 10 Jul 2009 00:14:05 +0000 (00:14 +0000)]
Replace TM.getRegisterInfo() calls by TRI instance variable.
Use getAsmName() method instead of accessing AsmName field directly.

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

14 years agoRedesign this to avoid standard stream classes. This stream class
David Greene [Thu, 9 Jul 2009 23:56:35 +0000 (23:56 +0000)]
Redesign this to avoid standard stream classes.  This stream class
provides pretty -printing of comments and other such things in asm
files.

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

14 years agoHandle 'a' modifier on inline assembly operands.
Bob Wilson [Thu, 9 Jul 2009 23:54:51 +0000 (23:54 +0000)]
Handle 'a' modifier on inline assembly operands.
This is part of the fix for pr4521.

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

14 years agoThis started as a small change, I swear. Unfortunately, lots of things call the...
Owen Anderson [Thu, 9 Jul 2009 23:48:35 +0000 (23:48 +0000)]
This started as a small change, I swear.  Unfortunately, lots of things call the [I|F]CmpInst constructors.  Who knew!?

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

14 years agoAdd some hooks that a redesigned AsmStream needs to do its job. These
David Greene [Thu, 9 Jul 2009 23:43:41 +0000 (23:43 +0000)]
Add some hooks that a redesigned AsmStream needs to do its job.  These
allow derived classes to examine the stream buffer before it's flushed.

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

14 years agoAdded Thumb IT instruction.
Evan Cheng [Thu, 9 Jul 2009 23:43:36 +0000 (23:43 +0000)]
Added Thumb IT instruction.

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

14 years agoFix an apparent copy-and-paste problem in an error message.
Bob Wilson [Thu, 9 Jul 2009 23:42:59 +0000 (23:42 +0000)]
Fix an apparent copy-and-paste problem in an error message.

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

14 years agoAnother todo entry.
Evan Cheng [Thu, 9 Jul 2009 23:17:28 +0000 (23:17 +0000)]
Another todo entry.

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

14 years agoRevert the part of 75177 that split ConstantRange into two classes, and
Dan Gohman [Thu, 9 Jul 2009 23:16:10 +0000 (23:16 +0000)]
Revert the part of 75177 that split ConstantRange into two classes, and
merge the new functionality and unittests into ConstantRange. Thanks to
Nick Lewycky for pointing out that it isn't necessary to have two separate
classes here.

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

14 years agoInitial support for load / store multiple opt pass Thumb2 support (post-allocation...
Evan Cheng [Thu, 9 Jul 2009 23:11:34 +0000 (23:11 +0000)]
Initial support for load / store multiple opt pass Thumb2 support (post-allocation only). It's kind of there, but not quite. I'll return to this later.

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

14 years agoFix ldm / stm unified syntax; add t2LDM_RET.
Evan Cheng [Thu, 9 Jul 2009 22:58:39 +0000 (22:58 +0000)]
Fix ldm / stm unified syntax; add t2LDM_RET.

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

14 years agoLDM_RET should be marked mayLoad.
Evan Cheng [Thu, 9 Jul 2009 22:57:41 +0000 (22:57 +0000)]
LDM_RET should be marked mayLoad.

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

14 years agoIf -fomit-frame-pointer is used, we still need to record when the %esp register
Bill Wendling [Thu, 9 Jul 2009 22:30:02 +0000 (22:30 +0000)]
If -fomit-frame-pointer is used, we still need to record when the %esp register
is modified. Otherwise, the unwinder will get confused. The old code (before I
started my hacking) did this. It dropped on the floor, because I wasn't aware of
this requirement.

On the plus side, if we use "alloca" in a function, we create frame pointers
even with -fomit-frame-pointer is enabled!

This is a Good Thing(tm)!!!

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

14 years agoFix ldrd / strd address mode matching code. It allows for +/- 8 bit offset. Also...
Evan Cheng [Thu, 9 Jul 2009 22:21:59 +0000 (22:21 +0000)]
Fix ldrd / strd address mode matching code. It allows for +/- 8 bit offset. Also change the printer to make the scale 4 explicit.

Note, we are not yet generating these instructions.

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

14 years agoFix typo, trailing whitespace.
Andreas Bolka [Thu, 9 Jul 2009 22:14:25 +0000 (22:14 +0000)]
Fix typo, trailing whitespace.

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

14 years agoAdd a ConstantSignedRange class, which does for signed integers
Dan Gohman [Thu, 9 Jul 2009 22:07:27 +0000 (22:07 +0000)]
Add a ConstantSignedRange class, which does for signed integers
what ConstantRange does for unsigned integers. Factor out a
common base class for common functionality.

Add some new functions for performing arithmetic on constant
ranges. Some of these are currently just stubbed out with
conservative implementations.

Add unittests for ConstantRange and ConstantSignedRange.

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

14 years agoMake EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
Eli Friedman [Thu, 9 Jul 2009 22:01:03 +0000 (22:01 +0000)]
Make EXTRACT_VECTOR_ELT a bit more flexible in terms of the returned
value.  Adjust other code to deal with that correctly.  Make
DAGTypeLegalizer::PromoteIntRes_EXTRACT_VECTOR_ELT take advantage of
this new flexibility to simplify the code and make it deal with unusual
vectors (like <4 x i1>) correctly.  Fixes PR3037.

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