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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Evan Cheng [Thu, 9 Jul 2009 20:50:52 +0000 (20:50 +0000)]
Add a Thumb readme entry.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75173
91177308-0d34-0410-b5e6-
96231b3b80d8
Evan Cheng [Thu, 9 Jul 2009 20:40:44 +0000 (20:40 +0000)]
Correct comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75172
91177308-0d34-0410-b5e6-
96231b3b80d8
Richard Pennington [Thu, 9 Jul 2009 20:27:09 +0000 (20:27 +0000)]
bug 4524: Add MSP430 to the cmake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75170
91177308-0d34-0410-b5e6-
96231b3b80d8
Dale Johannesen [Thu, 9 Jul 2009 20:06:27 +0000 (20:06 +0000)]
Handle 'A' modifier in inline asms.
gcc.apple/asm-block-13.c
gcc.apple/asm-block-57.c
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75169
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:39:49 +0000 (19:39 +0000)]
Regenerate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75167
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:39:16 +0000 (19:39 +0000)]
Documentation update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75166
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:38:32 +0000 (19:38 +0000)]
We don't need to set SaveTemps here.
'--temp-dir' always overrides 'save-temps'.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75165
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:37:58 +0000 (19:37 +0000)]
Adjust comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75164
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:37:17 +0000 (19:37 +0000)]
Remove some duplication.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75163
91177308-0d34-0410-b5e6-
96231b3b80d8
Mikhail Glushenkov [Thu, 9 Jul 2009 19:36:08 +0000 (19:36 +0000)]
Rename -t to --temp-dir.
-t is already used by gcc in the meaning 'ld -t' (trace). The Base plugin may
want to emulate this behaviour.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75162
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 9 Jul 2009 18:44:09 +0000 (18:44 +0000)]
As Chris pointed out, we don't actually need to pass the context around here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75161
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 9 Jul 2009 18:41:57 +0000 (18:41 +0000)]
back out r75156 for now.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75160
91177308-0d34-0410-b5e6-
96231b3b80d8
Owen Anderson [Thu, 9 Jul 2009 18:36:20 +0000 (18:36 +0000)]
A little bit more LLVMContextification.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75159
91177308-0d34-0410-b5e6-
96231b3b80d8
David Goodwin [Thu, 9 Jul 2009 18:35:52 +0000 (18:35 +0000)]
Handle Thumb-2 addressing modes during FP elimination.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75158
91177308-0d34-0410-b5e6-
96231b3b80d8
Ted Kremenek [Thu, 9 Jul 2009 18:34:41 +0000 (18:34 +0000)]
ImmutableSet/ImmutableMap: Allow caching of null digests by properly using a flag to record if the digest of an ImutAVLTree has been cached.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75157
91177308-0d34-0410-b5e6-
96231b3b80d8
David Greene [Thu, 9 Jul 2009 18:27:23 +0000 (18:27 +0000)]
Add some classes to produce pretty-printed asm. We'll use these
shortly to provide nicely printed comments and other goodies in
asm files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75156
91177308-0d34-0410-b5e6-
96231b3b80d8