Jeffrey Yasskin
489393d7b9
Add an option to allocate JITed global data separately from code. By
...
default, this option is not enabled to support clients who rely on
this behavior.
Fixes http://llvm.org/PR4483
A patch to allocate additional memory for globals after we run out is
forthcoming.
Patch by Reid Kleckner!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75059 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:59:57 +00:00
David Greene
e41dec60fa
Reformat.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:57:46 +00:00
Devang Patel
2214c94bb7
Drop "constant" from
...
!0 = constant metadata !{...}
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:57:07 +00:00
David Greene
229509a8bc
Allow users of GraphWriter to display graphs asynchronously. This
...
provides a way to quickly dump a bunch of graph information to dot files
and display them. It's a timesaver when working on large systems.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:53:41 +00:00
David Greene
59629c1d8b
Add an ExecuteNoWait interface to support asynchronous process spawning.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:46:40 +00:00
Devang Patel
320671d265
Update SLotTracker to handle MDNode slots.
...
Simplify MDNode printing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:44:25 +00:00
Duncan Sands
f2d754bb38
Nowadays vectors are only split if they have an even
...
number of elements. Make some simplifications based
on this (in particular SplitVecRes_SETCC). Tighten
up some checking while there.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:34:03 +00:00
Evan Cheng
e7cbe4118b
Change how so_imm and t2_so_imm are handled. At instruction selection time, the immediates are no longer encoded in the imm8 + rot format, that are left as it is. The encoding is now done in ams printing and code emission time instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:03:57 +00:00
Bill Wendling
c3d505c3c2
Recommit r74952 with a bug fix:
...
DWARF requires frame moves be specified at specific times. If you have a
prologue like this:
__Z3fooi:
Leh_func_begin1:
LBB1_0: ## entry
pushl %ebp
Llabel1:
movl %esp, %ebp
Llabel2:
pushl %esi
Llabel3:
subl $20, %esp
call "L1$pb"
"L1$pb":
popl %esi
The "pushl %ebp" needs a table entry specifying the offset. The "movl %esp,
%ebp" makes %ebp the new stack frame register, so that needs to be specified in
DWARF. And "pushl %esi" saves the callee-saved %esi register, which also needs
to be specified in DWARF.
Before, all of this logic was in one method. This didn't work too well, because
as you can see there are multiple FDE line entries that need to be created.
This fix creates the "MachineMove" objects directly when they're needed; instead
of waiting until the end, and losing information.
There is some ugliness where we generate code like this:
LBB22_0: ## entry
pushl %ebp
Llabel280:
movl %esp, %ebp
Llabel281:
Llabel284:
pushl %ebp <----------
pushl %ebx
pushl %edi
pushl %esi
Llabel282:
subl $328, %esp
Notice the extra "pushl %ebp". If we generate a "machine move" instruction in
the FDE for that pushl, the linker may get very confused about what value %ebp
should have when exitting the function. I.e., it'll give it the value %esp
instead of the %ebp value from the first "pushl". Not to mention that, in this
case, %ebp isn't modified in the function (that's a separate bug). I put a small
hack in to get it to work. It might be the only solution, but should be
revisited once the above case is fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 21:02:53 +00:00
Bill Wendling
058a024eb7
Use interators instead of counters for loops.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:57:27 +00:00
Torok Edwin
3046470919
Missed an exit during the conversion.
...
Will convert assert(0) that don't have abort() to LLVM_UNREACHABLE in a later
commit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75045 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:55:50 +00:00
Torok Edwin
dac237e182
Implement changes from Chris's feedback.
...
Finish converting lib/Target.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75043 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:53:28 +00:00
Owen Anderson
d1fbd14294
Push LLVMContext _back_ through IRBuilder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75040 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:50:47 +00:00
Chris Lattner
096e7280c2
Switch all the MC tests to use FileCheck.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75039 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:50:34 +00:00
Chris Lattner
648f9970ae
convert to FileCheck style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75038 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:40:54 +00:00
Bob Wilson
2ed334694f
Implement NEON vst1 instruction.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75037 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:32:02 +00:00
David Goodwin
77521f5232
Generalize opcode selection in ARMBaseRegisterInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75036 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:28:28 +00:00
Xerxes Ranby
cecbc964e1
Fix cmake build.
...
Added ARMBaseRegisterInfo.cpp to lib/Target/ARM/CMakeLists.txt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75035 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 20:13:41 +00:00
Devang Patel
1c7eea60d3
Support MDNode forward reference.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75031 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:23:54 +00:00
Dan Gohman
59ae6b9987
Make the code that updates ScalarEvolution's internal state in response
...
to a loop deletion more thorough. Don't prune the def-use tree search at
instructions that don't have SCEVs computed, because an instruction with
a user that has a computed SCEV may itself lack a computed SCEV. Also,
remove loop-related values from the ValuesAtScopes and
ConstantEvolutionLoopExitValues maps as well.
This fixes a regression in 483.xalancbmk.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75030 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:23:34 +00:00
Dan Gohman
85ebb0f66c
Tell ScalarEvolution to forget a loop before starting to delete it.
...
This way ScalarEvolution can examine the loop to determine what state
it needs to update, if it chooses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75029 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:14:29 +00:00
Torok Edwin
804e0fea40
Convert more abort() calls to llvm_report_error().
...
Also remove trailing semicolon.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75027 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:04:27 +00:00
Owen Anderson
e9b11b4313
Switch GlobalVariable ctors to a sane API, where *either* a context or a module is required.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75025 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 19:03:57 +00:00
Chris Lattner
515cdbe49d
add some more check for vector compares.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75024 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:51:25 +00:00
Chris Lattner
57e56cd72a
convert a test to "FileCheck" style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75023 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:48:24 +00:00
Chris Lattner
81cb8caa3e
Add a new little "FileCheck" utility for regression testing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75022 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:44:05 +00:00
David Goodwin
db5a71a8e0
Push methods into base class in preparation for sharing.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75020 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:31:39 +00:00
Bob Wilson
205a5ca6cf
Implement NEON vld1 instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75019 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:11:30 +00:00
Torok Edwin
ab7c09b6b6
Start converting to new error handling API.
...
cerr+abort -> llvm_report_error
assert(0)+abort -> LLVM_UNREACHABLE (assert(0)+llvm_unreachable-> abort() included)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75018 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 18:01:40 +00:00
David Goodwin
4de77f8afc
Conform...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75017 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 17:55:48 +00:00
David Goodwin
c140c4803d
Start breaking out common base functionality for register info.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75016 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 17:28:55 +00:00
Chris Lattner
b6017b03da
convert comments to doxygen style
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75015 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 17:09:18 +00:00
David Goodwin
a928f27d23
Add rev16 test... xfail for now
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75012 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 16:15:06 +00:00
David Goodwin
a565f7a498
Add myself to blame file...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75011 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 16:12:12 +00:00
David Goodwin
334c26473b
Checkpoint Thumb2 Instr info work. Generalized base code so that it can be shared between ARM and Thumb2. Not yet activated because register information must be generalized first.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75010 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 16:09:28 +00:00
Duncan Sands
8c899ee031
Remove trailing whitespace. Reorder some methods
...
and cases alphabetically. No functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75001 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 11:36:39 +00:00
Rafael Espindola
91f935e751
Update the example to show that an archive can contain llvm bitcode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75000 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 11:13:34 +00:00
Alisdair Meredith
13223c98f2
Trial first commit
...
Fixed build, requires std header before using std::string
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74995 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 09:04:19 +00:00
Sanjiv Gupta
2d76f256f8
Mark sublw_cc and subfw_cc as Terminator insns so that they are part of the terminator insns for a basic block alongwith branch insns. This way a copy is not getting inserted between cmp and branch during PHIElimination disturbing the status flags.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74992 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 05:40:05 +00:00
Nick Lewycky
7f6aa2b162
Remove the vicmp and vfcmp instructions. Because we never had a release with
...
these instructions, no autoupgrade or backwards compatibility support is
provided.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74991 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 03:04:38 +00:00
Evan Cheng
34a0fa362d
Add a Thumb2 instruction flag to that indicates whether the instruction can be transformed to 16-bit variant.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74988 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 01:46:35 +00:00
Owen Anderson
3d29df3e8a
Push LLVMContext through GlobalVariables and IRBuilder.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74985 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 01:26:06 +00:00
Chris Lattner
8b8d31e3ec
remove two methods that no longer exist.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74982 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 01:07:39 +00:00
Chris Lattner
01d9a1b78d
more getting windows to build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74981 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:52:12 +00:00
Chris Lattner
a47d9669b7
eliminate the v[if]cmp versions of these tests, now that [if]cmp+sext works.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74980 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:49:35 +00:00
Chris Lattner
b2773e1ada
Change these tests to use [fi]cmp+sext instead of v[fi]cmp. No
...
functionality change.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74979 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:46:57 +00:00
Chris Lattner
2b7a271c71
dag combine sext(setcc) -> vsetcc before legalize. To make this safe,
...
VSETCC must define all bits, which is different than it was documented
to before. Since all targets that implement VSETCC already have this
behavior, and we don't optimize based on this, just change the
documentation. We now get nice code for vec_compare.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74978 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:31:33 +00:00
Chris Lattner
8e5a084d47
hopefully fix the build on windows.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74977 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:29:32 +00:00
Evan Cheng
c9a4153eef
Add a todo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74976 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-08 00:05:05 +00:00
Evan Cheng
0fc0ade095
Also statically set bit 25 for BR_JT instructions.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74974 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-07 23:45:10 +00:00