Nick Lewycky
26e4b216c0
Allow the construction of SCEVs with SCEVCouldNotCompute operands, by
...
implementing folding. Fixes PR2857.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57049 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 11:19:07 +00:00
Anton Korobeynikov
c4e8bec703
Revert r56675 - it breaks unwinding runtime everywhere.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57048 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 11:09:36 +00:00
Argyrios Kyrtzidis
c8a07733d3
Add implementations for sys::Memory::setWritable and sys::Memory::setExecutable on Win32 platform.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57047 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 08:15:32 +00:00
Argyrios Kyrtzidis
0304b87cce
Fix compilation error on MSVC.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57046 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 08:11:49 +00:00
Dan Gohman
241f464d24
Fix fast-isel's handling of atomic instructions. They may
...
expand to multiple basic blocks, in which case fast-isel
needs to informed of which block to use as it resumes
inserting instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57040 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 00:56:36 +00:00
Dan Gohman
022b21ff7c
Fix a bug in the local allocator's liveness computation where it
...
was setting kill flags on tied uses in two-address instructions.
The kill flags were causing the allocator to think it could
allocate the use and its tied def in different registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57039 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-04 00:31:14 +00:00
Dale Johannesen
880ae364ba
Make atomic Swap work, 64-bit on x86-32.
...
Make it all work in non-pic mode.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57034 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 22:25:52 +00:00
Dan Gohman
792e1e92c7
Clean up some multiple-return-value code that is no longer
...
applicable.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57033 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 22:21:24 +00:00
Daniel Dunbar
58c2ac0e41
Change PointerType::get -> getUnqual
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57032 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 22:17:25 +00:00
Mikhail Glushenkov
3945b7cfce
Rename llvmc2/core to llvmc2/driver.
...
Makefiles try to remove 'core' by default, so it wasn't a very good name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57031 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 21:26:27 +00:00
Daniel Dunbar
ebb9f9b76d
Another dependency fix, prevent ObjDir from having trailing slash.
...
- It turns out this is enough to completely break dependency file
(.d) usage (at least for my gmake).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57030 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 21:24:52 +00:00
Devang Patel
3afba0ae41
Fix function attribute verification check.
...
Thanks Duncan!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57029 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 21:11:02 +00:00
Dale Johannesen
1b54c7fe9b
Pass MemOperand through for 64-bit atomics on 32-bit,
...
incidentally making the case where the memop is a
pointer deref work. Fix cmp-and-swap regression.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57027 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 19:41:08 +00:00
Daniel Dunbar
94e98af210
Add IS_CLEANING_TARGET Makefile variable.
...
- Fixes bug in dependency inclusions where make with unspecified
target wouldn't include dependency files, eek!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57026 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 19:11:19 +00:00
Devang Patel
20da1f07da
Nick Lewycky's patch.
...
While hosting instruction check PHI node.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57025 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 18:57:37 +00:00
Nuno Lopes
2d2649ac93
update svn:ignore
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57024 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 18:13:54 +00:00
Evan Cheng
90523c7146
New test case.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57023 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 18:12:59 +00:00
Dan Gohman
ca0a5d9356
Use -1ULL instead of uint64_t(-1), at Anton's suggestion.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57021 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 17:56:45 +00:00
Devang Patel
6d1b8a5911
Verify function attributes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57020 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 17:50:00 +00:00
Evan Cheng
17a82eaeb6
Fix typos pointed out by Duncan. Also untabify these files.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57018 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 17:11:58 +00:00
Daniel Dunbar
489032a2b7
Unbreak build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57017 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 17:11:57 +00:00
Dan Gohman
da8ac5fd91
Avoid creating two TargetLowering objects for each target.
...
Instead, just create one, and make sure everything that needs
it can access it. Previously most of the SelectionDAGISel
subclasses all had their own TargetLowering object, which was
redundant with the TargetLowering object in the TargetMachine
subclasses, except on Sparc, where SparcTargetMachine
didn't have a TargetLowering object. Change Sparc to work
more like the other targets here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57016 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 16:55:19 +00:00
Dan Gohman
38217fef57
Remove an unused field.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57014 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 16:17:33 +00:00
Jim Grosbach
cce6c297c5
On Darwin ARM, memory needs special handling to do JIT. This patch expands
...
this handling to work properly for modifying stub functions, relocations
back to entry points after JIT compilation, etc..
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57013 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 16:17:20 +00:00
Jim Grosbach
48b828fdb4
Indexing off by one resulted in errant encoding of source register for
...
reg->reg moves.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57011 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:53:56 +00:00
Jim Grosbach
016d34cc4c
NeedStub/DoesntNeedStub logic was reversed, leading to not using a stub
...
for global relocations that do need them (libc calls, for example).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57010 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:52:42 +00:00
Nuno Lopes
191dfb96de
regenerate
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57009 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:52:39 +00:00
Nuno Lopes
aa1aee3e95
fix more memleaks in ResolveTypeTo() and ParseGlobalVariable()
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57008 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:51:46 +00:00
Nuno Lopes
9e9631dae9
regenerate with bison 2.3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57007 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:45:58 +00:00
Dan Gohman
d735b8019b
Switch the MachineOperand accessors back to the short names like
...
isReg, etc., from isRegister, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:45:36 +00:00
Nuno Lopes
06a62886fb
fix memleak in FunctionHeaderH
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57005 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 15:44:21 +00:00
Mikhail Glushenkov
b6cc085134
Rename llvmc2/src to llvmc2/core.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57000 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 10:27:23 +00:00
Mikhail Glushenkov
c32dece5a8
Fix build breakage when objdir!=srcdir (proper fix).
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56999 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 10:26:37 +00:00
Mikhail Glushenkov
9d1b696441
Fix build breakage (again) when srcdir != objdir, other small fixes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56998 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 09:09:34 +00:00
Duncan Sands
e47561ccff
The result of getSetCCResultType (eg: i32) may be larger
...
than the type an i1 is promoted to (eg: i8). Account
for this. Noticed by Tilmann Scheller on CellSPU; he
will hopefully take care of fixing this in LegalizeDAG
and adding a testcase!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56997 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 07:41:46 +00:00
Duncan Sands
a2582da44d
Teach internalize to preserve the callgraph.
...
Why? Because it was there!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56996 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 07:36:09 +00:00
Nicolas Geoffray
dcb31e1790
Acquire the lock only when necessary. More precisely, do not acquire
...
the lock when calling a method which may materialize the llvm::Function.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56995 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 07:27:08 +00:00
Owen Anderson
a90793b431
SplitBlock should only attempt to update LoopInfo if it is actually being used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56994 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 06:55:35 +00:00
Dan Gohman
91b6f97ce4
Implement fast-isel support for zero-extending from i1.
...
It turns out that this is a fairly common operation,
and it's easy enough to handle.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56990 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 01:28:47 +00:00
Dan Gohman
4e6ed5eefd
Fix X86FastISel to handle dynamic allocas that have avoided
...
getting inserted into the ValueMap. This avoids infinite
recursion in some rare cases.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56989 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 01:27:49 +00:00
Bill Wendling
a079e2bdf5
Unbreak the build.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56988 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 00:26:49 +00:00
Dan Gohman
24585cbbf0
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56986 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-03 00:07:11 +00:00
Jim Grosbach
673612ec72
Add support for Canadian Cross builds where the host executables are not
...
runnable on the build machine.
There are a few bits that need built for the build environment (TableGen).
This patch builds those bits, and the associated libraries, for the build
environment as well as the (usual) host environment.
Thanks to Eric C. and Devang P. for pre-commit review.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56975 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 22:56:44 +00:00
Mikhail Glushenkov
597f3f8c5d
Fix build breakage.
...
Forgot to include Makefile.plugins.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56970 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 22:41:42 +00:00
Dan Gohman
d98d6203e4
Optimize conditional branches in X86FastISel. This replaces
...
sequences like this:
sete %al
testb %al, %al
jne LBB11_1
with this:
je LBB11_1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56969 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 22:15:21 +00:00
Dan Gohman
6ade6f55a8
Add a new MachineBasicBlock utility function, isLayoutSuccessor, that
...
can be used when deciding if a block can transfer control to another
via a fall-through instead of a branch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56968 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 22:09:09 +00:00
Mikhail Glushenkov
e4a5ea3130
Build system tweaks to make it more convenient for the plugin authors.
...
Plugins can be now compiled in with a slight Makefile change.
For example, to compile the new Clang driver, use:
cd $LLVMC2_DIR
make TOOLNAME=ccc2 BUILTIN_PLUGINS=Clang
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56967 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 21:15:05 +00:00
Andrew Lenharth
88ab90b475
fix build gcc 4.3
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56965 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 20:15:08 +00:00
Owen Anderson
8481ee7f52
Use a multimap rather than a map for holding the list of copies to insert, so we don't lose copies when two of them have
...
the same source. I don't know what I was thinking when I wrote this originally.
Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism
guarantees need to be present.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56964 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 19:40:33 +00:00
Dale Johannesen
48c1bc2ace
Handle some 64-bit atomics on x86-32, some of the time.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56963 91177308-0d34-0410-b5e6-96231b3b80d8
2008-10-02 18:53:47 +00:00