Chris Lattner
bb5d44d7c4
make immediates be int64_t like machineoperand. Add some apis
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73809 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-20 00:47:37 +00:00
Owen Anderson
cc40f077b0
Add debugging code to test for various locking faux-pas's, when running in single threaded mode. This should help improve testing coverage for
...
threading support, without having extensive actually concurrent clients yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73803 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-20 00:27:21 +00:00
Owen Anderson
04fb7c36a9
Revert r73790, and replace it with a significantly less ugly solution. Rather than trying to make the global reader-writer lock work,
...
create separate recursive mutexes for each value map. The recursive-ness fixes the double-acquiring issue, which having one per ValueMap
lets us continue to maintain some concurrency.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73801 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-20 00:24:58 +00:00
Chris Lattner
d5fb790613
stub out some hacky code for wiring up the new asmprinter interfaces
...
on X86. Not useful yet.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73799 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 23:59:57 +00:00
Dan Gohman
2c364ad4a6
Make GetMinTrailingZeros a member function of ScalarEvolution,
...
so that it can access the TargetData member (when available) and
use ValueTracking.h information to compute information for
SCEVUnknown Values.
Also add GetMinLeadingZeros and GetMinSignBits functions,
with minimal implementations.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73794 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 23:29:04 +00:00
Owen Anderson
430444b102
Fix a serious bug that would cause deadlock during abstract type refinement. The constant creation
...
gets involved, and we end up trying to recursively acquire a writer lock. The fix for this is slightly horrible,
and involves passing a boolean "locked" parameter around in Constants.cpp, but it's better than having locked and
unlocked versions of most of the code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73790 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 23:16:19 +00:00
Devang Patel
1e86a66b00
mv CodeGen/DebugLoc.h Support/DebugLoc.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73786 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 22:08:58 +00:00
Owen Anderson
94fefe27f5
Fences are expensive. Avoid doing them when we're not in multithreaded mode.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73777 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 17:50:11 +00:00
Owen Anderson
1b19a50cdb
Fix a major typo.
...
Nicolas, this is probably the cause of the failures you were seeing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73770 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 17:08:20 +00:00
Duncan Sands
852cd112ed
Add support for AuroraUX. Patch by evocallaghan.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73766 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 14:40:01 +00:00
Lang Hames
10382fb71d
More VNInfo tweaking, plus a little progress on intra-block splitting.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73750 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 02:17:53 +00:00
Zhongxing Xu
8ebf83b2cc
Include DataTypes.h for 'uint64_t'.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73748 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 01:56:53 +00:00
Owen Anderson
4f10c3b4dc
Fix weird class-size-being-different problems. At some level this is being caused by config.h not being
...
included everywhere.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73745 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 00:48:22 +00:00
Chris Lattner
475370b036
Add some scaffolding for a new experimental asmprinter
...
implementation. The idea is that we want asmprinting to
work by converting MachineInstrs into a new MCInst class,
then the per-instruction asmprinter works on MCInst. MCInst
and the new asmprinters will not depend on most of the
llvm code generators. This allows building diassemblers
that don't link in the whole llvm code generator. This is
step #1 of many.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73743 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 00:47:33 +00:00
Chris Lattner
4e0f25b603
merge the common darwin settings from the X86/PPC/ARM targets
...
into DarwinTargetAsmInfo.cpp. The remaining differences should
be evaluated. It seems strange that x86/arm has .zerofill but ppc
doesn't, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73742 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-19 00:08:39 +00:00
Chris Lattner
a93ca92379
move mangler quote handling from asm printers to TargetAsmInfo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73738 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 23:41:35 +00:00
Chris Lattner
b839c3f577
simplify macro debug info directive handling.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73736 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 23:31:37 +00:00
Owen Anderson
4a7893b452
Add a parent pointer to SCEV, in preparation for getting rid of the global uniquing tables. No functionality change.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73728 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 22:25:12 +00:00
Owen Anderson
3c8031df6d
Add a SmartScopedLock, and use it to simplify code.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73722 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 20:51:00 +00:00
Anton Korobeynikov
9547cdfa35
Revert IRBuilder CC propagation. Fix SimplifyLibCalls instead.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73715 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 20:05:31 +00:00
Owen Anderson
f0eeb9b7f5
Simplify the SmartMutex implementation a bit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73711 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 18:29:03 +00:00
Owen Anderson
b65e9ed106
Give RWMutex the SmartRWMutex treatment too.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73710 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 18:26:15 +00:00
Owen Anderson
b849a4dd4b
Insert a SmartMutex templated class into the class hierarchy, which takes a template parameter specifying whether this mutex
...
should become a no-op when not running in multithreaded mode. Make sys::Mutex a typedef of SmartMutex<false>, to preserve source compatibility.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73709 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 17:53:17 +00:00
Owen Anderson
e3cd5ca7e7
Move Threading.[h|cpp] from Support to System.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73707 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 16:54:52 +00:00
Dan Gohman
4e8a98519e
Remove the code from IVUsers that attempted to handle
...
casted induction variables in cases where the cast
isn't foldable. It ended up being a pessimization in
many cases. This could be fixed, but it would require
a bunch of complicated code in IVUsers' clients. The
advantages of this approach aren't visible enough to
justify it at this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73706 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 16:54:06 +00:00
Anton Korobeynikov
fd0cfe4bb4
Forgot to commit this hunk
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73693 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 08:30:57 +00:00
Anton Korobeynikov
df9d0f0ed2
Propagate calling conv for invokes too
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73692 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 08:13:56 +00:00
Chris Lattner
b7b39987bb
Don't use int8_t, that requires DataTypes.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73682 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 04:56:53 +00:00
Zhongxing Xu
73d2f15fb5
include header for uint8_t.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73675 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 04:11:43 +00:00
Evan Cheng
f9f1da17f8
- Update register allocation hint after coalescing. This is done by the target since the hint is target dependent. This is important for ARM register pair hints.
...
- Register allocator should resolve the second part of the hint (register number) before passing it to the target since it knows virtual register to physical register mapping.
- More fixes to get ARM load / store double word working.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73671 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-18 02:04:01 +00:00
Owen Anderson
bf5ec1b9db
Reapply r73647 in a non-broken form.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73662 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 23:49:06 +00:00
Owen Anderson
b983d67465
Protect the GC table in Function.cpp
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73647 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 22:23:31 +00:00
Anton Korobeynikov
bf823e7590
Honour calling convention and attributes of Callee by default.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73646 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 22:20:46 +00:00
Lang Hames
857c4e01f8
VNInfo cleanup.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73634 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 21:01:20 +00:00
Owen Anderson
dd561e1539
Add an RAII ScopedWriter, which allows one to acquire a writer lock for the duration of a scope. Simplify a lot of uses of
...
writer locks in Constants.cpp by using it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73630 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 20:34:43 +00:00
Douglas Gregor
e9d683b052
Define LLVM_NATIVE_ARCH in CMake, so that lli can actually JIT
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73616 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 17:01:56 +00:00
Chris Lattner
7b04c94152
remove two headers subsumed by TargetSelect.h
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73612 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 16:45:02 +00:00
Chris Lattner
5f1a5c7f57
Add a utility header that makes it easy to link in the right set
...
of targets for various purposes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73610 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 16:42:01 +00:00
Chris Lattner
08826a50e1
make CreateFMul forward to CreateFMul, not CreateMul.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73603 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 06:31:02 +00:00
Mikhail Glushenkov
71c767b4e3
Fix comment.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73601 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 03:10:10 +00:00
Douglas Gregor
0711c30376
Update auto-generated configuration files
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73591 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 00:43:20 +00:00
Owen Anderson
efdbfc4cef
Use atomic increment/decrement for reference counting of Type's.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73588 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 00:28:49 +00:00
Owen Anderson
9a3df671ab
Add an atomic increment and decrement implementation, which will be used for
...
thread-safe reference counting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73587 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-17 00:13:00 +00:00
Owen Anderson
1527f5442a
Forgot this file in my last commit.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73578 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 22:56:04 +00:00
Owen Anderson
82995a83e1
Fix #include guards.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73548 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 20:26:04 +00:00
Owen Anderson
ff30b7d173
Fix/cleanup trailing newlines.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73546 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 20:23:05 +00:00
Owen Anderson
2a8cf9aadd
Add a portable wrapper for reader-writer locks.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73545 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 20:19:28 +00:00
Douglas Gregor
1555a23335
Introduce new headers whose inclusion forces linking and
...
initialization of all targets (InitializeAllTargets.h) or assembler
printers (InitializeAllAsmPrinters.h). This is a step toward the
elimination of relinked object files, so that we can build normal
archives.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73543 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 20:12:29 +00:00
Anton Korobeynikov
385f5a99ec
Address review comments: add 3 ARM calling conventions.
...
Dispatch C calling conv. to one of these conventions based on
target triple and subtarget features.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73530 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 18:50:49 +00:00
Owen Anderson
de8aed2808
Add a configure check for pthread_rwlock_init.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73523 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-16 18:20:20 +00:00