Chris Lattner
83effafb6b
eliminate MOV64r0 in favor of a Pat<> pattern. This is only nontrivial because
...
the div lowering code explicitly references it.
llvm-svn: 75408
2009-07-12 00:47:55 +00:00
Chris Lattner
35e5cff316
add nounwind
...
llvm-svn: 75407
2009-07-12 00:46:16 +00:00
Chris Lattner
3ca9ece03f
be explicit about making comments real sentences.
...
llvm-svn: 75406
2009-07-12 00:10:24 +00:00
Nick Lewycky
e5c1852b69
Darwin prepends an _ to internal globals, Linux doesn't.
...
llvm-svn: 75405
2009-07-11 23:48:59 +00:00
Chris Lattner
a54c70286c
fix x86-64 static codegen to materialize the address of a global with movl instead
...
of lea. It is better for code size (and presumably efficiency) to use:
movl $foo, %eax
rather than:
leal foo, eax
Both give a nice zero extending "move immediate" instruction, the former is just
smaller. Note that global addresses should be handled different by the x86
backend, but I chose to follow the style already in place and add more fixme's.
llvm-svn: 75403
2009-07-11 23:17:29 +00:00
Chris Lattner
3ab73a2545
fix a bug in my cleanup patch
...
llvm-svn: 75402
2009-07-11 23:07:30 +00:00
Chris Lattner
4902f811b6
comment cleanup, reduce nesting.
...
llvm-svn: 75398
2009-07-11 22:50:33 +00:00
Chris Lattner
2af5f2aeca
remove some dead patterns, WrapperRIP doesn't exist in -static mode
...
anymore, so these aren't needed.
llvm-svn: 75397
2009-07-11 22:47:21 +00:00
Chris Lattner
1e7e5e5de0
silence vc++ warning.
...
llvm-svn: 75394
2009-07-11 22:32:37 +00:00
Chris Lattner
edf6f031d8
silence a vc++ warning.
...
llvm-svn: 75393
2009-07-11 22:31:59 +00:00
Chris Lattner
7015283356
this test was incorrect for x86-64 static. It passed on darwin, because darwin
...
doesn't have static x86-64 mode.
llvm-svn: 75392
2009-07-11 22:30:05 +00:00
Daniel Dunbar
e905c7445d
Tweak comment.
...
llvm-svn: 75391
2009-07-11 22:06:10 +00:00
Daniel Dunbar
ead6d9675c
Update CMakeLists.txt
...
llvm-svn: 75389
2009-07-11 21:53:14 +00:00
Daniel Dunbar
054effb8e8
Fix unused function warning.
...
llvm-svn: 75386
2009-07-11 21:24:52 +00:00
Nick Lewycky
d3d5cfa475
Revert r75252 which was causing some crashes at compile time.
...
llvm-svn: 75384
2009-07-11 20:38:25 +00:00
Chris Lattner
496f872969
Fix PR4533, which is about buggy codegen in x86-64 -static mode.
...
Basically, using:
lea symbol(%rip), %rax
is not valid in -static mode, because the current RIP may not be
within 32-bits of "symbol" when an app is built partially pic and
partially static. The fix for this is to compile it to:
lea symbol, %rax
It would be better to codegen this as:
movq $symbol, %rax
but that will come next.
The hard part of fixing this bug was fixing abi-isel, which was actively
testing for the wrong behavior. Also, the RUN lines are completely impossible
to understand what they are testing. To help with this, convert the -static
x86-64 codegen tests to use filecheck. This is much more stable and makes it
more clear what the codegen is expected to be.
llvm-svn: 75382
2009-07-11 20:29:19 +00:00
Torok Edwin
2efc9fcd4c
Fix comment.
...
llvm-svn: 75380
2009-07-11 20:13:58 +00:00
Torok Edwin
ae8a3ff177
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.
llvm-svn: 75379
2009-07-11 20:10:48 +00:00
Daniel Dunbar
2c046813c6
Stub out assembly matcher (.s -> MCInst) tblgen backend.
...
llvm-svn: 75378
2009-07-11 19:39:44 +00:00
Mikhail Glushenkov
6de3793d9c
Regenerate.
...
llvm-svn: 75376
2009-07-11 19:28:00 +00:00
Mikhail Glushenkov
e779ca7370
Update documentation.
...
llvm-svn: 75375
2009-07-11 19:27:40 +00:00
Mikhail Glushenkov
8ce78c596d
Delete the temp dir even when '--temp-dir' is specified.
...
llvm-svn: 75374
2009-07-11 19:27:07 +00:00
Nick Lewycky
3e43cd4105
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.
llvm-svn: 75372
2009-07-11 19:22:21 +00:00
Chris Lattner
abe5a919b8
improve filecheck's "scanning from here" caret position.
...
llvm-svn: 75371
2009-07-11 19:21:09 +00:00
Chris Lattner
3ddde921ee
make filecheck default to canonicalizing horizontal whitespace
...
away. This way you can write a space and it matches arbitrary spaces and tabs.
llvm-svn: 75370
2009-07-11 18:58:15 +00:00
Nick Lewycky
d2817afb0e
Break the world's largest unit test down a few logical lines. No semantic
...
changes.
llvm-svn: 75369
2009-07-11 18:43:20 +00:00
Sanjiv Gupta
52c87f84a6
Erase the temp dir before starting.
...
llvm-svn: 75367
2009-07-11 17:35:46 +00:00
Nick Lewycky
58a6fd9824
Clarify and simplify.
...
llvm-svn: 75366
2009-07-11 17:04:01 +00:00
Dan Gohman
6f78ed8f74
Don't use a void return type with a function that returns a value.
...
llvm-svn: 75364
2009-07-11 13:56:14 +00:00
Torok Edwin
9b41a5faf2
Convert more assert(0)+abort() -> LLVM_UNREACHABLE,
...
and abort()/exit() -> llvm_report_error().
llvm-svn: 75363
2009-07-11 13:10:19 +00:00
Chris Lattner
6bfeeb798a
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.
llvm-svn: 75362
2009-07-11 08:30:22 +00:00
Evan Cheng
20086680b0
Don't put IT instruction before conditional branches.
...
llvm-svn: 75361
2009-07-11 07:26:20 +00:00
Evan Cheng
03d981d91b
Smarter isel of ldrsb / ldrsh. Only make use of these when [r,r] address is feasible.
...
llvm-svn: 75360
2009-07-11 07:08:13 +00:00
Evan Cheng
268b47b1fb
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.
llvm-svn: 75359
2009-07-11 06:43:01 +00:00
Evan Cheng
e83b947a2c
80 col violation.
...
llvm-svn: 75358
2009-07-11 06:37:27 +00:00
Nick Lewycky
fee40fdcd9
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.
llvm-svn: 75357
2009-07-11 06:15:39 +00:00
Evan Cheng
9d134d08dc
Fix up support for OptionalDefOperand when it defaults to an actual register def. I need this to get ready for major Thumb1 surgery.
...
llvm-svn: 75328
2009-07-11 01:06:50 +00:00
Eli Friedman
2d27c23fb6
Use CreateStackStoreLoad helper in more places.
...
llvm-svn: 75320
2009-07-11 00:11:07 +00:00
Evan Cheng
8a86ec9857
Two-address pass should use findCommutedOpIndices to determine what registers are commuted.
...
llvm-svn: 75317
2009-07-11 00:04:23 +00:00
Evan Cheng
84a8e5aadc
Use findCommutedOpIndices to find the operands to commute.
...
llvm-svn: 75312
2009-07-10 23:26:12 +00:00
Bob Wilson
88593195a0
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.
llvm-svn: 75309
2009-07-10 23:09:06 +00:00
Bob Wilson
48729a2025
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.
llvm-svn: 75308
2009-07-10 23:05:09 +00:00
Chris Lattner
a403645785
remove the "debug" modifier, it is only used by one instruction which can
...
never be generated.
llvm-svn: 75305
2009-07-10 22:34:11 +00:00
Bob Wilson
96c15b3c68
Refactor TableGen's llvm::getName to share code with llvm::getEnumName,
...
since names are the same for almost all the types.
llvm-svn: 75302
2009-07-10 22:25:24 +00:00
Chris Lattner
84bf9fed2b
add support for .zerofill, patch by Kevin Enderby!
...
llvm-svn: 75301
2009-07-10 22:20:30 +00:00
Jeffrey Yasskin
0f896380f6
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().
llvm-svn: 75300
2009-07-10 22:13:21 +00:00
Chris Lattner
70881971d2
make pcrel and non-pcrel global printing more similar.
...
llvm-svn: 75298
2009-07-10 21:57:21 +00:00
David Goodwin
85da1c6622
Support remote execute for ARM.
...
llvm-svn: 75292
2009-07-10 21:39:28 +00:00
Evan Cheng
94967abfe3
Undo my brain cramp.
...
llvm-svn: 75290
2009-07-10 21:31:42 +00:00
David Greene
a60479705b
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.
llvm-svn: 75283
2009-07-10 21:14:44 +00:00