Chris Lattner
a08186aabc
add a file I missed, this goes with r73743
...
llvm-svn: 73744
2009-06-19 00:47:59 +00:00
Chris Lattner
3235c38dbb
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.
llvm-svn: 73743
2009-06-19 00:47:33 +00:00
Chris Lattner
8284b66264
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.
llvm-svn: 73742
2009-06-19 00:08:39 +00:00
Chris Lattner
2cce7d5988
fix build problem pointed out by John Thompson!
...
llvm-svn: 73739
2009-06-18 23:46:04 +00:00
Chris Lattner
b84764516d
move mangler quote handling from asm printers to TargetAsmInfo.
...
llvm-svn: 73738
2009-06-18 23:41:35 +00:00
Chris Lattner
4df8e5c800
minor cleanup
...
llvm-svn: 73737
2009-06-18 23:33:13 +00:00
Chris Lattner
09081b25a5
simplify macro debug info directive handling.
...
llvm-svn: 73736
2009-06-18 23:31:37 +00:00
Evan Cheng
a0ca298f8a
Remove UseThumbBacktraces. Just check if subtarget is darwin.
...
llvm-svn: 73734
2009-06-18 23:14:30 +00:00
Chris Lattner
c7ab953177
fix file header
...
llvm-svn: 73733
2009-06-18 23:05:21 +00:00
Chris Lattner
8dd8a52533
Add a skeleton driver for new machine code level fun. llvm-mc is meant
...
to be a test driver of other components in the system, which will develop
over time.
llvm-svn: 73732
2009-06-18 23:04:45 +00:00
Chris Lattner
fb8097b576
new testcase for rdar://6983634
...
llvm-svn: 73729
2009-06-18 22:53:26 +00:00
Owen Anderson
38830b19e9
Add a parent pointer to SCEV, in preparation for getting rid of the global uniquing tables. No functionality change.
...
llvm-svn: 73728
2009-06-18 22:25:12 +00:00
Lang Hames
32270cc78e
Improved PHI def marking, replaced some gotos with breaks.
...
llvm-svn: 73727
2009-06-18 22:01:47 +00:00
Evan Cheng
032bc36939
Allow user to specify separate SVN url for llvm and the test suite.
...
llvm-svn: 73726
2009-06-18 21:39:50 +00:00
Owen Anderson
b614f1e13c
Simplify.
...
llvm-svn: 73725
2009-06-18 21:35:56 +00:00
Owen Anderson
7f1ef67a7b
Simplify.
...
llvm-svn: 73723
2009-06-18 20:56:48 +00:00
Owen Anderson
5a6960fcc3
Add a SmartScopedLock, and use it to simplify code.
...
llvm-svn: 73722
2009-06-18 20:51:00 +00:00
Owen Anderson
a6dc7456e1
Simplify with SmartRWMutex.
...
llvm-svn: 73721
2009-06-18 20:44:31 +00:00
Evan Cheng
de9e36a74e
On Darwin, ams printer should output a second label before a jump table so the linker knows it's a new atom. But this is only needed if the jump table is put in a separate section from the function body.
...
llvm-svn: 73720
2009-06-18 20:37:15 +00:00
Owen Anderson
5e1f6d95a2
Simplify by using no-op-when-not-multithreaded locks.
...
llvm-svn: 73719
2009-06-18 20:36:21 +00:00
Dan Gohman
8c9ac59455
Generalize LSR's OptimizeSMax to handle unsigned max tests as well
...
as signed max tests. Along with r73717, this helps CodeGen avoid
emitting code for a maximum operation for this class of loop.
llvm-svn: 73718
2009-06-18 20:23:18 +00:00
Dan Gohman
4d3c3cfffd
Recognize n != 0 ? n : 1 as umax(n, 1). Previously only ULT/UGT/ULE/UGE
...
comparisons were recognized for umax, but instcombine canonicalizes
unsigned comparisons with zero to this simpler form.
llvm-svn: 73717
2009-06-18 20:21:07 +00:00
Owen Anderson
830ff50abf
Simplify using mutexes that become no-ops when not in multithreaded mode.
...
llvm-svn: 73716
2009-06-18 20:15:26 +00:00
Anton Korobeynikov
6ee547bb1b
Revert IRBuilder CC propagation. Fix SimplifyLibCalls instead.
...
llvm-svn: 73715
2009-06-18 20:05:31 +00:00
Owen Anderson
d830eb8365
Simplify a lot of code by using a R/W mutex that becomes a no-op when multithreading is disabled.
...
llvm-svn: 73714
2009-06-18 19:10:19 +00:00
Owen Anderson
fa107259fe
Use SmartMutex to simplify.
...
llvm-svn: 73712
2009-06-18 18:36:34 +00:00
Owen Anderson
6c634f39ce
Simplify the SmartMutex implementation a bit.
...
llvm-svn: 73711
2009-06-18 18:29:03 +00:00
Owen Anderson
1498a7a510
Give RWMutex the SmartRWMutex treatment too.
...
llvm-svn: 73710
2009-06-18 18:26:15 +00:00
Owen Anderson
68f6598c69
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.
llvm-svn: 73709
2009-06-18 17:53:17 +00:00
Ted Kremenek
81ef65d491
Update CMake files to account for new location of Threading.cpp.
...
llvm-svn: 73708
2009-06-18 17:47:09 +00:00
Owen Anderson
7d42b95b6c
Move Threading.[h|cpp] from Support to System.
...
llvm-svn: 73707
2009-06-18 16:54:52 +00:00
Dan Gohman
a0348809b6
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.
llvm-svn: 73706
2009-06-18 16:54:06 +00:00
Dan Gohman
56bd02c55c
Generalize the zext(trunc(t) & C) instcombine to work even with
...
C is not a low-bits mask, and add a similar instcombine for
zext((trunc(t) & C) ^ C).
llvm-svn: 73705
2009-06-18 16:30:21 +00:00
Dan Gohman
5a728c908c
Update a comment to reflect the code.
...
llvm-svn: 73704
2009-06-18 16:24:47 +00:00
Owen Anderson
c5eb1ee4b7
Fix the double checked locking in this file too.
...
llvm-svn: 73703
2009-06-18 16:17:42 +00:00
Owen Anderson
0fd4eaef30
As pointed out by Duncan, I accidentally dropped the first MemoryFence of the
...
double-checked locking pattern here.
llvm-svn: 73701
2009-06-18 16:08:27 +00:00
Anton Korobeynikov
e2ff9a6f38
Forgot to commit this hunk
...
llvm-svn: 73693
2009-06-18 08:30:57 +00:00
Anton Korobeynikov
832b9e6a7a
Propagate calling conv for invokes too
...
llvm-svn: 73692
2009-06-18 08:13:56 +00:00
Chris Lattner
8527e674ce
Don't use int8_t, that requires DataTypes.h
...
llvm-svn: 73682
2009-06-18 04:56:53 +00:00
Owen Anderson
6eb4a73633
Fix build when disable thread support.
...
Patch by Howard Su.
llvm-svn: 73680
2009-06-18 04:44:46 +00:00
Zhongxing Xu
bb4a7979b5
include header for uint8_t.
...
llvm-svn: 73675
2009-06-18 04:11:43 +00:00
Nick Lewycky
87c4a05008
Add braces to clarify if/else structure and remove warning.
...
llvm-svn: 73673
2009-06-18 03:01:42 +00:00
Evan Cheng
0e79603588
- 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.
llvm-svn: 73671
2009-06-18 02:04:01 +00:00
Dale Johannesen
9d9acb065a
It looks like nobody is working on PR 4158, so I'm
...
adding a check to catch this case at compile time
instead of quietly generating incorrect code.
That will at least let us identify CBE failures
that are not due to this problem.
llvm-svn: 73668
2009-06-18 01:07:23 +00:00
Dan Gohman
94c468f419
Fix trailing whitespace from ScalarEvolution::print.
...
llvm-svn: 73666
2009-06-18 00:37:45 +00:00
Bob Wilson
86c12d7bc4
ARM unified syntax is not specific to ELF; use it for Darwin, too.
...
llvm-svn: 73665
2009-06-18 00:36:17 +00:00
Dan Gohman
eddf77123a
Teach ScalarEvolution how to recognize another xor(and(x, C), C) case.
...
If C is a single bit and the and gets analyzed as a truncate and
zero-extend, the xor can be represnted as an add.
llvm-svn: 73664
2009-06-18 00:00:20 +00:00
Dan Gohman
4d8723d47f
Delete unnecessary braces.
...
llvm-svn: 73663
2009-06-17 23:54:37 +00:00
Owen Anderson
ed14e767e8
Reapply r73647 in a non-broken form.
...
llvm-svn: 73662
2009-06-17 23:49:06 +00:00
Anton Korobeynikov
5658086052
Fix asm string from MOVi16
...
llvm-svn: 73661
2009-06-17 23:43:36 +00:00
Anton Korobeynikov
f687a828b2
Thumb2 instructions are enabled only in unified assembler mode.
...
Emit switch directive for it. I have no idea whether this is
requirement for Darwin or not.
llvm-svn: 73660
2009-06-17 23:43:18 +00:00
Dan Gohman
7f836c7c61
Instcombine zext(trunc(x) & mask) to x&mask, even if the trunc has
...
multiple users.
llvm-svn: 73656
2009-06-17 23:17:05 +00:00
Owen Anderson
89ee957cbd
Use double-checked locking for this lazy initialization.
...
llvm-svn: 73653
2009-06-17 22:53:57 +00:00
Owen Anderson
aab59c52cf
Protect the GC table in Function.cpp
...
llvm-svn: 73647
2009-06-17 22:23:31 +00:00
Anton Korobeynikov
603a0b7a09
Honour calling convention and attributes of Callee by default.
...
llvm-svn: 73646
2009-06-17 22:20:46 +00:00
Owen Anderson
b299d40d5a
Use atomic increment here.
...
llvm-svn: 73643
2009-06-17 22:01:09 +00:00
Owen Anderson
c7b91a0820
Thread-safe (and ManagedStatic-ized) LeakDetector!
...
llvm-svn: 73642
2009-06-17 21:56:05 +00:00
Owen Anderson
0dd39fdf96
Guard mutation of the timing info global.
...
llvm-svn: 73639
2009-06-17 21:28:54 +00:00
Owen Anderson
eae9772679
We need to use double-checked locking for lazy initialization in this case when running multithreaded.
...
llvm-svn: 73636
2009-06-17 21:16:20 +00:00
Stefanus Du Toit
667cd9abe2
Fix link to BasicBlock doxygen documentation in Programmer's Manual
...
llvm-svn: 73635
2009-06-17 21:12:26 +00:00
Lang Hames
16cab1935e
VNInfo cleanup.
...
llvm-svn: 73634
2009-06-17 21:01:20 +00:00
Dan Gohman
432af7ace0
Add -disable-output to a bunch of tests that don't care about the output.
...
llvm-svn: 73633
2009-06-17 20:56:26 +00:00
Dale Johannesen
81b6463ed0
This fixes a bug introduced in 72661, which can
...
move loads back past a check that the load address
is valid, see new testcase. The test that went
in with 72661 has exactly this case, except that
the conditional it's moving past is checking
something else; I've settled for changing that
test to reference a global, not a pointer. It
may be possible to scan all the tests you pass and
make sure none of them are checking any component
of the address, but it's not trivial and I'm not
trying to do that here.
llvm-svn: 73632
2009-06-17 20:48:23 +00:00
Owen Anderson
f89c38cace
Factor out some common code.
...
llvm-svn: 73631
2009-06-17 20:43:39 +00:00
Owen Anderson
65c5cd728e
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.
llvm-svn: 73630
2009-06-17 20:34:43 +00:00
Owen Anderson
61794049e4
Simplify the locking on the Constants tables, and make it more efficient, by pushing it into the ValueMap from the callers.
...
Document those ValueMap functions that are _not_ locked, so that callers are aware that they need to do the locking themselves.
llvm-svn: 73628
2009-06-17 20:10:08 +00:00
Torok Edwin
ba93ea7632
Add debug message about non-local loads being clobbered.
...
llvm-svn: 73625
2009-06-17 18:48:18 +00:00
Owen Anderson
2d7231d4c3
Type safety for Constants.cpp! Some of this is temporary, as I'm planning to push some of the R/W locking into FoldingSet.
...
llvm-svn: 73624
2009-06-17 18:40:29 +00:00
Anton Korobeynikov
02bb33c58d
Initial support for some Thumb2 instructions.
...
Patch by Viktor Kutuzov and Anton Korzh from Access Softek, Inc.
llvm-svn: 73622
2009-06-17 18:13:58 +00:00
Dan Gohman
d8329e8378
Update comments to use doxygen syntax.
...
llvm-svn: 73621
2009-06-17 17:51:33 +00:00
Owen Anderson
4b660a8da7
Protect the ValueHandle table.
...
llvm-svn: 73620
2009-06-17 17:36:57 +00:00
Owen Anderson
e5fdd0b5d1
We need to guard reads of the AbstractTypeUsers list, as well as writes to it. While it would be nice to use a R/W lock here,
...
we can't, because it HAS to be recursive.
llvm-svn: 73617
2009-06-17 17:13:54 +00:00
Douglas Gregor
3def847551
Define LLVM_NATIVE_ARCH in CMake, so that lli can actually JIT
...
llvm-svn: 73616
2009-06-17 17:01:56 +00:00
Douglas Gregor
2761988cfd
Add RWMutex.cpp to the CMake makefiles
...
llvm-svn: 73615
2009-06-17 17:01:30 +00:00
Owen Anderson
a4b739aff4
Type safety for TypeSymbolTable!
...
llvm-svn: 73614
2009-06-17 16:56:27 +00:00
Chris Lattner
d24df24527
make sure that JIT examples link in their appropriate target.
...
llvm-svn: 73613
2009-06-17 16:48:44 +00:00
Chris Lattner
f44da17824
remove two headers subsumed by TargetSelect.h
...
llvm-svn: 73612
2009-06-17 16:45:02 +00:00
Chris Lattner
5dcc4f6999
switch to using llvm/Target/TargetSelect.h
...
llvm-svn: 73611
2009-06-17 16:42:19 +00:00
Chris Lattner
e57ab8dbd0
Add a utility header that makes it easy to link in the right set
...
of targets for various purposes.
llvm-svn: 73610
2009-06-17 16:42:01 +00:00
Owen Anderson
74af4ee79d
Improve the Win32 reader-writer lock implementation by making it just a normal
...
lock. This is obviously bad, but at least it's threadsafe! If you know how
to improve this in a pre-Vista friendly well, patches welcome!
Patch by Max Burke.
llvm-svn: 73607
2009-06-17 09:10:42 +00:00
Nick Lewycky
510dae3051
Fix libLTO by #include'ing the initializers for all targets and all asm
...
printers.
While I'm here, alphabetize.
llvm-svn: 73606
2009-06-17 06:52:10 +00:00
Sanjiv Gupta
2f2b0a1985
>> What if my global variable was into a different address space than stack?
...
>>
>
> It doesn't matter in terms of semantics: because AnalyzeGlobal
> returned false, we're guaranteed the address of the global is never
> taken. I wouldn't be surprised if we end up generating invalid IR in
> some cases, though, because of the semantics of replaceAllUsesWith.
> Do you have a testcase that breaks?
>
>
The problem is replaceAllUsesWith asserts for type mismatch here. Try attached .bc with llvm-ld.
assert(New->getType() == getType() &&
"replaceAllUses of value with new value of different type!");
Since stack is always on address space zero, I don't think that type of GV in a different address space is ever going to match.
The other way is to allow replaceAllUsesWith to ignore address spaces while comparing types. (do we have a way to do that ?).
But then such an optimization may fail the entire idea of user wanting to place a variable into different memory space. The original idea of user might be to save on the stack space (data memory) and hence he asked the variable to be placed into different memory space (program memory). So the best bet here is to deny this optimization by checking
GV->getType()->getAddressSpace() == 0.
llvm-svn: 73605
2009-06-17 06:47:15 +00:00
Chris Lattner
e60ff6702a
make CreateFMul forward to CreateFMul, not CreateMul.
...
llvm-svn: 73603
2009-06-17 06:31:02 +00:00
Nick Lewycky
d9d1f817a0
Fix grammaro, and bad indentation.
...
llvm-svn: 73602
2009-06-17 04:23:52 +00:00
Mikhail Glushenkov
b697c774fe
Fix comment.
...
llvm-svn: 73601
2009-06-17 03:10:10 +00:00
Mikhail Glushenkov
132a47191d
Formatting fix.
...
llvm-svn: 73600
2009-06-17 03:09:39 +00:00
Eli Friedman
28891b661d
Correct an accidental duplication of the test (patch doesn't handle
...
creating new files very well).
llvm-svn: 73599
2009-06-17 03:05:00 +00:00
Eli Friedman
a0fba5319d
PR3439: Correct a silly mistake in the SimplifyDemandedUseBits code for
...
SRem.
llvm-svn: 73598
2009-06-17 02:57:36 +00:00
Mikhail Glushenkov
7af1d248f5
Regenerate.
...
llvm-svn: 73597
2009-06-17 02:56:48 +00:00
Mikhail Glushenkov
fbd815fb7a
Another small documentation update.
...
llvm-svn: 73596
2009-06-17 02:56:08 +00:00
Chris Lattner
4ced3324c5
Use Doug's new LLVM_NATIVE_ARCH macro in config.h to link in the native
...
target so that the JIT works in LLI, not just the interpreter.
llvm-svn: 73595
2009-06-17 02:15:40 +00:00
Dan Gohman
b50f5a46e0
Fix ScalarEvolution's Xor handling to not assume that an And
...
that gets recognized with a SCEVZeroExtendExpr must be an And
with a low-bits mask. With r73540, this is no longer the case.
llvm-svn: 73594
2009-06-17 01:22:39 +00:00
Devang Patel
722848dc01
Do not use first actual instruction's location for prologue. The debug wants to skip prologue while setting a breakpoint for the function.
...
llvm-svn: 73592
2009-06-17 00:48:26 +00:00
Douglas Gregor
43613a2b0a
Update auto-generated configuration files
...
llvm-svn: 73591
2009-06-17 00:43:20 +00:00
Douglas Gregor
7cbf816b7c
Define LLVM_NATIVE_ARCH in llvm/Config/config.h to be the LLVM back end that corresponds to the native executable, but only when that LLVM back end is being built
...
llvm-svn: 73590
2009-06-17 00:42:33 +00:00
Owen Anderson
82b58a843b
Use atomic increment/decrement for reference counting of Type's.
...
llvm-svn: 73588
2009-06-17 00:28:49 +00:00
Owen Anderson
8d0fe6f0d7
Add an atomic increment and decrement implementation, which will be used for
...
thread-safe reference counting.
llvm-svn: 73587
2009-06-17 00:13:00 +00:00
Owen Anderson
c39919151d
Add locking around the accessors for AbstractTypeUsers.
...
llvm-svn: 73586
2009-06-17 00:12:30 +00:00
Chris Lattner
eaae8d0cdc
Remove support for building LLVM libraries into "relinked"
...
object files. Now we always build LLVM libraries into archives (.a files).
This makes the 'make' build work more like the cmake build, among other
things. Doing this exposed some latent circular library dependencies, so
I think that llvm-config wasn't quite right for .o files anyway.
llvm-svn: 73579
2009-06-16 23:00:42 +00:00
Owen Anderson
e4ed45924a
Forgot this file in my last commit.
...
llvm-svn: 73578
2009-06-16 22:56:04 +00:00
Owen Anderson
35a82d40bd
Use a reader-writer lock to guard large portions of the Type infrastructure, including abstract type refinement.
...
There's still some more work to be done here, such as guarding removeAbstractTypeUser() and the printers.
llvm-svn: 73575
2009-06-16 22:51:18 +00:00
Chris Lattner
ca52e86346
fix a circular dependency between the mips code generator
...
and its asmprinter.
llvm-svn: 73573
2009-06-16 22:38:04 +00:00
Chris Lattner
632bfb31c9
Fix the EE bindings to use the proper EE interfaces for creating a JIT.
...
Calling into createJIT directly creates a circular dependency between libjit and lib ee.
llvm-svn: 73567
2009-06-16 22:26:13 +00:00
Douglas Gregor
32f546b77e
CMake: Only include LLVM example executables in the build if requested by the user
...
llvm-svn: 73566
2009-06-16 22:25:45 +00:00
Dale Johannesen
b8a82ff218
Test for llvm-gcc patch 73564.
...
llvm-svn: 73565
2009-06-16 22:18:33 +00:00
Owen Anderson
79b76b5bea
Accidentally broke this file.
...
llvm-svn: 73552
2009-06-16 20:57:51 +00:00
Owen Anderson
993e4261d0
Add newline at end of file.
...
llvm-svn: 73551
2009-06-16 20:53:09 +00:00
Owen Anderson
896cee711f
Remove the Win32 implementation, since it doesn't compile pre-Vista.
...
llvm-svn: 73550
2009-06-16 20:49:20 +00:00
Owen Anderson
8a1ff9eb41
Fix #include guards.
...
llvm-svn: 73548
2009-06-16 20:26:04 +00:00
Anton Korobeynikov
469e8217d4
Make the test target-neutral
...
llvm-svn: 73547
2009-06-16 20:25:25 +00:00
Owen Anderson
372a9289a5
Fix/cleanup trailing newlines.
...
llvm-svn: 73546
2009-06-16 20:23:05 +00:00
Owen Anderson
324f94c317
Add a portable wrapper for reader-writer locks.
...
llvm-svn: 73545
2009-06-16 20:19:28 +00:00
Douglas Gregor
1b731d5dbe
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.
llvm-svn: 73543
2009-06-16 20:12:29 +00:00
Dan Gohman
0ed7756fbe
Generalize a few more instcombines to be vector/scalar-independent.
...
llvm-svn: 73541
2009-06-16 19:55:29 +00:00
Dan Gohman
1ee696d8fc
Instcombine's ShrinkDemandedConstant may strip bits out of constants,
...
obscuring what would otherwise be a low-bits mask. Use ComputeMaskedBits
to compute what ShrinkDemandedConstant knew about to reconstruct a
low-bits mask value.
llvm-svn: 73540
2009-06-16 19:52:01 +00:00
Evan Cheng
0d9730f39f
CALL64pcrel32 immediate field is 32-bit. Patch by Abhinav Duggal.
...
llvm-svn: 73536
2009-06-16 19:44:27 +00:00
Anton Korobeynikov
a8fd40b50a
Address review comments: add 3 ARM calling conventions.
...
Dispatch C calling conv. to one of these conventions based on
target triple and subtarget features.
llvm-svn: 73530
2009-06-16 18:50:49 +00:00
Anton Korobeynikov
5d28cb204f
GNU as refuses to assemble "pop {}" instruction. Do not emit such
...
(this is the case when we have thumb vararg function with single
callee-saved register, which is handled separately).
llvm-svn: 73529
2009-06-16 18:49:08 +00:00
Owen Anderson
a149e22c09
Add a configure check for pthread_rwlock_init.
...
llvm-svn: 73523
2009-06-16 18:20:20 +00:00
Owen Anderson
4741b5782a
Update the threading section to reflect current plans/implementation.
...
llvm-svn: 73521
2009-06-16 18:04:19 +00:00
Douglas Gregor
c791c37633
Add Threading.cpp to the CMake project files
...
llvm-svn: 73516
2009-06-16 17:45:38 +00:00
Owen Anderson
eb105f99ec
Fix validation errors.
...
llvm-svn: 73515
2009-06-16 17:40:28 +00:00
Owen Anderson
4cb4b6191a
Split the thread-related APIs out into their own file, and add a few more
...
calls for convenience.
llvm-svn: 73512
2009-06-16 17:33:51 +00:00
Chris Lattner
22c645b337
Testcase for r73506
...
llvm-svn: 73508
2009-06-16 17:23:25 +00:00
Chris Lattner
945d08d76f
Generalize instcombine's isSafeToLoadUnconditionally() function
...
to ignore readonly calls, and factor it out of instcombine so
that it can be used by other passes. Patch by Frits van Bommel!
llvm-svn: 73506
2009-06-16 17:23:12 +00:00
Sanjiv Gupta
05a7dba3bd
Added missing libcalls for floating point to int conversions.
...
llvm-svn: 73491
2009-06-16 16:17:35 +00:00
Eli Friedman
8bc032c97c
Remove the "llvm.umul.with.overflow is broken" warning; it should be
...
essentially working now, at least for common cases, and it shouldn't
silently generate bad code.
llvm-svn: 73484
2009-06-16 10:24:13 +00:00
Sanjiv Gupta
bce3ca6ad9
Fixed names of libcalls checked in r73480.
...
llvm-svn: 73483
2009-06-16 10:22:58 +00:00
Sanjiv Gupta
5372d4a568
Code Restructuring. No functionality change.
...
llvm-svn: 73481
2009-06-16 09:45:18 +00:00
Sanjiv Gupta
557ed09e0f
Added required libcalls for PIC16 (mostly floating points to integer casting operations).
...
llvm-svn: 73480
2009-06-16 09:03:58 +00:00
Evan Cheng
591bcad8b9
Rename RemoveCopiesFromValNo to TurnCopiesFromValNoToImpDefs.
...
llvm-svn: 73479
2009-06-16 07:15:05 +00:00
Evan Cheng
cc21a5415a
If a val# is defined by an implicit_def and it is being removed, all of the copies off the val# were removed. This causes problem later since the scavenger will see uses of registers without defs. The proper solution is to change the copies into implicit_def's instead.
...
TurnCopyIntoImpDef turns a copy into implicit_def and remove the val# defined by it. This causes an scavenger assertion later if the def reaches other blocks. Disable the transformation if the value live interval extends beyond its def block.
llvm-svn: 73478
2009-06-16 07:12:58 +00:00
Eli Friedman
abfad5d61e
Add some generic expansion logic for SMULO and UMULO. Fixes UMULO
...
support for x86, and UMULO/SMULO for many architectures, including PPC
(PR4201), ARM, and Cell. The resulting expansion isn't perfect, but it's
not bad.
llvm-svn: 73477
2009-06-16 06:58:29 +00:00
Eli Friedman
48021d15d6
Misc accumulated tweaks to legalization logic for various targets.
...
llvm-svn: 73476
2009-06-16 06:40:59 +00:00
Chris Lattner
0101f45785
another xform that is target-independent (should be done in instcombine).
...
llvm-svn: 73472
2009-06-16 06:15:56 +00:00
Chris Lattner
aba55a69b1
I think instcombine should unconditionally do this xform.
...
llvm-svn: 73471
2009-06-16 06:11:35 +00:00
Chris Lattner
06310bf178
Fix PR4336: Iterating over use-def chains doesn't seem to be deterministic.
...
The problem was that BitcodeReader::materializeModule would read functions
from the bc file in densemap pointer key order (doubly non-deterministic!),
which would cause the use-def chains to be set up for globals in
non-determinstic order. Non-determinstic use/def chains can cause
nondeterminism in many places down-stream.
Many thanks to Julien Lerouge for putting together the pass in the PR that
shows the issue!
llvm-svn: 73470
2009-06-16 05:15:21 +00:00
Bill Wendling
92b17b550e
There doesn't seem to be a reason to move the save FP stuff.
...
llvm-svn: 73468
2009-06-16 04:12:45 +00:00
Bill Wendling
f6c6a7f1b7
The DWARF to compact encoding converter assumes that the DW_CFA_def_cfa_offset
...
comes after the DW_CFA_def_cfa_register, because the CFA is really ESP from the
start of the function and only gets an offset when the "subl $xxx,%esp"
instruction happens, not the other way around.
And reapply r72898:
The DWARF unwind info was incorrect. While compiling with
`-fomit-frame-pointer', we would lack the DW_CFA_advance_loc information for a
lot of function, and then they would be `0'. The linker (at least on Darwin)
needs to encode the stack size. In some cases, the stack size is too large to
directly encode. So the linker checks to see if there is a "subl $xxx,%esp"
instruction at the point where the `DW_CFA_def_cfa_offset' says the pc was. If
so, the compact encoding records the offset in the function to where the stack
size is embedded. But because the `DW_CFA_advance_loc' instructions are missing,
it looks before the function and dies.
So, instead of emitting the EH debug label before the stack adjustment
operations, emit it afterwards, right before the frame move stuff.
llvm-svn: 73465
2009-06-16 04:06:15 +00:00
Bill Wendling
4a172428e5
Fix typos.
...
llvm-svn: 73464
2009-06-16 04:02:03 +00:00
Devang Patel
14491abe48
Use MainCU if it is available.
...
llvm-svn: 73457
2009-06-16 02:09:30 +00:00
Owen Anderson
f0ffb777d9
Add initial stab at documenting the use of LLVM with threaded clients.
...
Comments welcome!
llvm-svn: 73456
2009-06-16 01:17:16 +00:00
Dan Gohman
22d4cf60d8
Add comments to ConstantInt::get and ConstantFP::get to more fully
...
describe their behavior.
llvm-svn: 73454
2009-06-16 01:02:32 +00:00
Dan Gohman
adfd42a3c8
Use Type::getScalarType.
...
llvm-svn: 73451
2009-06-16 00:20:26 +00:00
Mikhail Glushenkov
b4b44ea71c
Regenerate.
...
llvm-svn: 73449
2009-06-16 00:14:20 +00:00
Mikhail Glushenkov
bf5085251a
Documentation update.
...
llvm-svn: 73448
2009-06-16 00:13:52 +00:00
Owen Anderson
e2432761f0
Owen Anderson 2009-06-15: Use a SmallPtrSet here, for speed and to match df_iterator.
...
Owen Anderson 2009-06-15: Remember to clear out our maps to prevent crashing.
llvm-svn: 73438
2009-06-15 22:54:48 +00:00
Dan Gohman
0274d32530
Add a CreateFNeg function to IRBuilder.
...
llvm-svn: 73437
2009-06-15 22:50:40 +00:00
Dan Gohman
8e85118943
Update this test to use fmul instead of mul.
...
llvm-svn: 73436
2009-06-15 22:49:34 +00:00
Dan Gohman
6e6808adaf
Change this from an assert to a cerr+exit, since it's diagnosing an
...
unsupported inline asm construct, rather than verifying a code invariant.
llvm-svn: 73435
2009-06-15 22:32:41 +00:00