Dan Gohman
a7326b5ba5
Remove some unnecessary -f options.
...
llvm-svn: 80924
2009-09-03 16:11:53 +00:00
Dan Gohman
3a0ce3e639
Move getUniqueExitBlocks from LoopBase to Loop, since they depend on
...
LoopSimplify form, which is currently only available on Loops (and
not MachineLoops). Also, move the code out of the header file.
llvm-svn: 80923
2009-09-03 16:10:48 +00:00
Dan Gohman
0054b460ff
Use IRReader.h in opt, to support reading of LLVM Assembly files directly.
...
llvm-svn: 80922
2009-09-03 16:00:08 +00:00
Dan Gohman
22571485b3
Change PHINode::hasConstantValue to have a DominatorTree argument
...
instead of a bool argument, and to do the dominator check itself.
This makes it eaiser to use when DominatorTree information is
available.
llvm-svn: 80920
2009-09-03 15:34:35 +00:00
Dan Gohman
96a26bd35a
Don't try to verify a LoopPass analysis if the loop has been deleted.
...
llvm-svn: 80919
2009-09-03 15:09:24 +00:00
Dan Gohman
237d9e5213
Remove references to expression "handles", which are no longer used.
...
llvm-svn: 80918
2009-09-03 15:00:26 +00:00
Benjamin Kramer
13d048fdff
CppBackend: avoid printing unnecessary whitespace.
...
llvm-svn: 80917
2009-09-03 14:58:24 +00:00
Duncan Sands
0edc7100ba
Keep track of how many memmove calls were turned into
...
memcpy calls.
llvm-svn: 80915
2009-09-03 13:37:16 +00:00
Andreas Neustifter
d194e13b8d
Fix build warning.
...
llvm-svn: 80912
2009-09-03 09:11:10 +00:00
Andreas Neustifter
7e86c3856b
Code Cleanup.
...
Removed inverted flag form MaximumSpanningTree, also do not handle so much
information to MaximumSpanningTree.
llvm-svn: 80911
2009-09-03 08:52:52 +00:00
Daniel Dunbar
213f8f4860
Filter out -fno-rtti from CXXFLAGS as well (in an expensive checks build).
...
llvm-svn: 80910
2009-09-03 08:41:19 +00:00
Andreas Neustifter
b68e921c25
Code Cleanup.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086139.html )
llvm-svn: 80909
2009-09-03 08:41:05 +00:00
Daniel Dunbar
f563ac919b
Reapply profiling tests.
...
llvm-svn: 80908
2009-09-03 07:38:00 +00:00
Daniel Dunbar
0dc21e4713
Remove undefined behavior when loading optimal edge profile info.
...
llvm-svn: 80907
2009-09-03 07:37:42 +00:00
Chris Lattner
51a0712538
don't call getOffset() on jump tables, this fixes three failing olden benchmarks
...
with the new asmprinter.
llvm-svn: 80906
2009-09-03 07:36:42 +00:00
Chris Lattner
c7b00730ad
Implement support for X86II::MO_GOT_ABSOLUTE_ADDRESS. We get very
...
different formatting from the old asmprinter, but it should be
semantically the same. We used to get:
popl %eax
addl $_GLOBAL_OFFSET_TABLE_ + [.-.Lllvm$6.$piclabel], %eax
...
Now we get:
popl %eax
.Lpicbaseref6:
addl $(_GLOBAL_OFFSET_TABLE_ + (.Lpicbaseref6 - .Lllvm$6.$piclabel)), %eax
...
llvm-svn: 80905
2009-09-03 07:30:56 +00:00
Evan Cheng
1b38952c99
Reference to hidden symbols do not have to go through non-lazy pointer in non-pic mode. rdar://7187172.
...
llvm-svn: 80904
2009-09-03 07:04:02 +00:00
Nick Lewycky
88214fbd12
Remove VISIBILITY_HIDDEN from this file.
...
llvm-svn: 80903
2009-09-03 06:43:15 +00:00
Chris Lattner
cdb6fd2c7c
merge all the basic linux/32 pic tests together into one test.
...
llvm-svn: 80902
2009-09-03 06:29:23 +00:00
Chris Lattner
4f101f98d1
rename test
...
llvm-svn: 80901
2009-09-03 06:16:49 +00:00
Chris Lattner
438380aa4d
use a darwin triple
...
llvm-svn: 80900
2009-09-03 06:15:11 +00:00
Chris Lattner
41bf56de79
TAI -> MAI
...
llvm-svn: 80899
2009-09-03 06:13:54 +00:00
Chris Lattner
17b3a93ad0
adjust expected lines.
...
llvm-svn: 80898
2009-09-03 06:13:45 +00:00
Chris Lattner
cdeb8d147d
improve comments.
...
llvm-svn: 80897
2009-09-03 06:00:00 +00:00
Chris Lattner
1945453843
fix MCSymbol printing to exactly match the normal mangler rules so
...
we can diff .s files.
llvm-svn: 80894
2009-09-03 05:57:47 +00:00
Chris Lattner
7a53b96394
remove extraneous hack.
...
llvm-svn: 80893
2009-09-03 05:54:00 +00:00
Daniel Dunbar
c3a0aba120
Make these functions static and local.
...
llvm-svn: 80892
2009-09-03 05:47:34 +00:00
Daniel Dunbar
76628def06
Tweak comment.
...
llvm-svn: 80891
2009-09-03 05:47:22 +00:00
Chris Lattner
f4366a3998
Thread an MCAsmInfo pointer through the various MC printing APIs,
...
and fix a few things using << on MCSymbols to use ->print(). No
functionality change other than unbreaking my previous patch.
llvm-svn: 80890
2009-09-03 05:46:51 +00:00
Chris Lattner
1a67fe8862
just use dump()
...
llvm-svn: 80889
2009-09-03 05:39:09 +00:00
Chris Lattner
1800dff44e
inline insertion operators.
...
llvm-svn: 80888
2009-09-03 05:33:01 +00:00
Chris Lattner
27266f164f
In C++, code is not allowed to call main. In C it is, this
...
simplifylibcalls optimization is thus valid for C++ but not C.
It's not important enough to worry about for C++ apps, so just
remove it.
rdar://7191924
llvm-svn: 80887
2009-09-03 05:19:59 +00:00
Chris Lattner
954b9cd41f
merge globaladdress symbol processing stuff into other stuff. Now
...
all global variable operand flag processing stuff is shared between
different operand types.
llvm-svn: 80886
2009-09-03 05:06:07 +00:00
Evan Cheng
155deabbcb
Unbreak x86_64 build.
...
llvm-svn: 80885
2009-09-03 05:01:00 +00:00
Chris Lattner
6370d5606c
Split the "operand -> symbol" logic from the "get offset and other munging
...
from operand" logic. GlobalAddress still todo.
llvm-svn: 80884
2009-09-03 04:56:20 +00:00
Chris Lattner
5daf61910e
implement lowering support for constant pool index operands, this gets a bunch more
...
olden programs working.
llvm-svn: 80881
2009-09-03 04:44:53 +00:00
Evan Cheng
47455a79ae
X86JITInfo::getLazyResolverFunction() should not read cpu id to determine whether sse is available. Just use consult subtarget.
...
No functionality changes.
llvm-svn: 80880
2009-09-03 04:37:05 +00:00
Ted Kremenek
231dd7169d
Set the 'cached digest' flag after computing the digest for an
...
ImutAVLTree. This was accidentally left out, and essentially caused
digest caching to be ignored in ImmutableMap and ImmutableSet (this
bug was detected from shark traces that showed ComputeDigest was in
the hot path in the clang static analyzer).
This reduces the running time of the clang static analyzer on an
example benchmark by ~32% for both RegionStore (field-sensitivty) and
BasicStore (without field-sensitivity).
llvm-svn: 80877
2009-09-03 04:21:34 +00:00
Chris Lattner
11c989cc47
update test for alignment value in hex
...
llvm-svn: 80876
2009-09-03 04:03:44 +00:00
Chris Lattner
f16a122213
output alignment value in hex so that we get:
...
.align 3, 0x90
instead of,
.align 3, 144
suggested by eric.
llvm-svn: 80875
2009-09-03 04:01:10 +00:00
Chris Lattner
620713c5b4
simplify this by using SmallString::str(), much nicer!
...
llvm-svn: 80874
2009-09-03 03:54:02 +00:00
Lang Hames
0b3720b3c3
Fixed a test that ensures the LocalRewriter does not attempt to
...
avoid reloads by reusing clobbered registers.
This was causing issues in 256.bzip2 when compiled with PIC for
a while (starting at r78217), though the problem has since been masked.
llvm-svn: 80872
2009-09-03 02:52:02 +00:00
Gabor Greif
2d60e1ec0c
back out my recent commit (r80858), it seems to break self-hosting buildbot's stage 2 configure
...
llvm-svn: 80871
2009-09-03 02:02:59 +00:00
Devang Patel
f7188325ef
Now Bitcode reader bug is fixed. Reapply 80839.
...
Use CallbackVH, instead of WeakVH, to hold MDNode elements.
Use FoldingSetNode to unique MDNodes in a context.
Use CallbackVH hooks to update context's MDNodeSet appropriately.
llvm-svn: 80868
2009-09-03 01:39:20 +00:00
Devang Patel
116b4a0cb3
Add new value for given index in MDValuePtrs.
...
llvm-svn: 80867
2009-09-03 01:38:02 +00:00
Daniel Dunbar
18d6959f39
Improve llvm::getHostTriple for some cases where the LLVM_HOSTTRIPLE is not
...
reliable.
llvm-svn: 80863
2009-09-03 01:10:13 +00:00
Gabor Greif
14dfba6d66
re-commit r66920 (which has been backed out in r66953) I may have more luck this time. I'll back out if needed...
...
llvm-svn: 80858
2009-09-03 00:18:58 +00:00
Sean Callanan
f400442927
Added opaque 32-, 48-, and 80-bit memory operand types to the X86
...
instruction tables to support segmented addressing (and other objects
of obscure type).
Modified the X86 assembly printers to handle these new operand types.
Added JMP and CALL instructions that use segmented addresses.
llvm-svn: 80857
2009-09-03 00:04:47 +00:00
Daniel Dunbar
fc39586b4f
Show derived host triple in --version.
...
llvm-svn: 80855
2009-09-02 23:52:38 +00:00
Shantonu Sen
96995e8179
Improve support for cross-hosted builds of LLVM.
...
--build=triple and other configure options are passed
to the BuildTools/ sub-invocation more consistently
llvm-svn: 80854
2009-09-02 23:52:23 +00:00
Douglas Gregor
ef7c1fd909
Unbreak my CMake build. Say you'll link again.
...
llvm-svn: 80842
2009-09-02 22:45:31 +00:00
Devang Patel
c180029be4
Revert 80839 for now. It causes test failures.
...
llvm-svn: 80841
2009-09-02 21:49:26 +00:00
Devang Patel
36309cd391
Use CallbackVH, instead of WeakVH, to hold MDNode elements.
...
Use FoldingSetNode to unique MDNodes in a context.
Use CallbackVH hooks to update context's MDNodeSet appropriately.
llvm-svn: 80839
2009-09-02 21:22:09 +00:00
Anton Korobeynikov
f0da41c3e4
More missed vdup patterns
...
llvm-svn: 80838
2009-09-02 21:21:28 +00:00
Dan Gohman
c76bfb777e
Switch llc from ParseBitcodeFile to ParseIRFile. This lets llc
...
transparently read either LLVM Assembly or LLVM Bitcode files.
llvm-svn: 80829
2009-09-02 19:35:19 +00:00
Dan Gohman
a7e8799c72
Add a comment noting the memory ownership rules.
...
llvm-svn: 80827
2009-09-02 19:21:56 +00:00
Dan Gohman
b7cb99bf50
Add convenience functions for reading in LLVM IR that autodetect
...
and LLVM Assembly and LLVM Bitcode and automatically call the
corresponding reader.
llvm-svn: 80809
2009-09-02 17:54:06 +00:00
Chris Lattner
7bd37b47c8
switch from std::string to SmallString + raw_svector_ostream.
...
llvm-svn: 80807
2009-09-02 17:37:38 +00:00
Chris Lattner
74f4ca7cb2
split mcinst lowering stuff out to its own file.
...
llvm-svn: 80806
2009-09-02 17:35:12 +00:00
Dan Gohman
957b1316e6
Fix the syntax of add/sub/mul nsw/nuw and sdiv exact.
...
llvm-svn: 80805
2009-09-02 17:31:42 +00:00
Dan Gohman
ae58e72018
Add const qualifiers for isBitcodeWrapper, and add new functions
...
isRawBitcode and isBitcode to allow clients to test whether a given
memory buffer holds a bitcode image.
llvm-svn: 80804
2009-09-02 17:21:29 +00:00
Dan Gohman
77ac99dc31
Refactor common code from ParseAssemblyString and ParseAssemblyFile,
...
to expose a low-level interface for parsing from an existing MemoryBuffer.
llvm-svn: 80803
2009-09-02 17:18:19 +00:00
Dan Gohman
87d69e80b1
Add const qualifiers to dominates' arguments.
...
llvm-svn: 80801
2009-09-02 17:05:05 +00:00
Andreas Neustifter
69e2afe030
Removed temporarily because of breaking Darwin builds.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090831/086214.html )
llvm-svn: 80799
2009-09-02 16:47:24 +00:00
Bob Wilson
bc751989f1
Rearrange code to eliminate redundancy and avoid gotos.
...
llvm-svn: 80798
2009-09-02 16:35:35 +00:00
Nuno Lopes
2baa6a38d2
plug another leak in LLParser::PerFunctionState::SetInstName()
...
llvm-svn: 80792
2009-09-02 15:02:57 +00:00
Andreas Neustifter
da6b0fa8ed
Changed profiling-tool-chain.ll test to use optimal-edge-profiling instead of
...
edge-profiling, this is more useful since the loading of the
optimal-edge-profiling is more complicated.
The edge-profiling is tested in edge-profiling.ll where only the
instrumentation is tested.
llvm-svn: 80791
2009-09-02 14:24:08 +00:00
Nuno Lopes
2fcee70aeb
plug memory leak in LLParser::PerFunctionState::SetInstName() by deleting a value after replacing it
...
llvm-svn: 80790
2009-09-02 14:22:03 +00:00
Andreas Neustifter
ae866b0c66
Sort edges in MaximumSpanningTree more stable in case of equal weight.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085890.html )
llvm-svn: 80789
2009-09-02 14:03:11 +00:00
Andreas Neustifter
964fa2bdac
Changed set of BlocksToInstrument to set of InsertedBlocks that do not have to
...
be instrumented.
llvm-svn: 80788
2009-09-02 13:59:05 +00:00
Andreas Neustifter
4469c164d0
Code cleanups and added comments.
...
llvm-svn: 80781
2009-09-02 12:38:39 +00:00
Torok Edwin
82131d6ad7
Opaque types didn't work if llvm_is_multithreaded().
...
AlwaysOpaqueTy is always NULL at this point, and it causes an assertion failure.
Fix it by using the just constructed tmp instead.
llvm-svn: 80780
2009-09-02 12:23:05 +00:00
Torok Edwin
18e03dd70c
Fix DbgStopPointInst->getFileName/getDirectory, broken by the MDNodification in
...
r80406, and readd a -print-dbginfo test.
llvm-svn: 80778
2009-09-02 11:13:56 +00:00
Sandeep Patel
68c5f477fa
Retype from unsigned to CallingConv::ID accordingly. Approved by Bob Wilson.
...
llvm-svn: 80773
2009-09-02 08:44:58 +00:00
Chris Lattner
defbbc9105
Fix month.
...
llvm-svn: 80769
2009-09-02 06:34:22 +00:00
Chris Lattner
4916267c97
fix PR4815: some cases where DeleteDeadInstruction can delete
...
the instruction BBI points to.
llvm-svn: 80768
2009-09-02 06:31:02 +00:00
Chris Lattner
09a79dcfdf
clean up this code a bit.
...
llvm-svn: 80767
2009-09-02 06:15:37 +00:00
Chris Lattner
2dd09dbdf7
eliminate VISIBILITY_HIDDEN from Transforms/Scalar. PR4861
...
llvm-svn: 80766
2009-09-02 06:11:42 +00:00
Chris Lattner
d5f4fcceae
refactor select 'sched insertion' out to its own method.
...
llvm-svn: 80764
2009-09-02 05:57:00 +00:00
Chris Lattner
cc8c581a5b
Add support for modeling whether or not the processor has support for
...
conditional moves as a subtarget feature. This is the easy part of
PR4841.
llvm-svn: 80763
2009-09-02 05:53:04 +00:00
Chris Lattner
950e60ea97
fix PR4848 an infinite loop when indexing down through a recursive gep
...
and we get the original pointer type. This doesn't mean that we're
at the first pointer being indexed. Correct the predicate.
llvm-svn: 80762
2009-09-02 05:35:45 +00:00
Chris Lattner
64b5842986
fix PR4837, some bugs folding vector compares. These
...
return a vector of i1, not i1 itself.
llvm-svn: 80761
2009-09-02 05:12:37 +00:00
Chris Lattner
65fb597793
revert my patch, duncan points out what is wrong with my logic. Add
...
a comment so that I don't change this in the future :)
llvm-svn: 80760
2009-09-02 04:39:04 +00:00
Chris Lattner
8f23276431
one more try at making this simpler, hopefully it won't break everything :)
...
llvm-svn: 80759
2009-09-02 04:34:06 +00:00
Duncan Sands
5632d96176
Complicate Chris's simplification, avoiding complaints
...
about singular iterators when building with expensive
checks turned on.
llvm-svn: 80757
2009-09-02 03:48:41 +00:00
Daniel Dunbar
0935339f81
Don't force the triple or data layout in this test. We just have to get them
...
from the host and hope that works.
llvm-svn: 80751
2009-09-02 02:43:11 +00:00
Dan Gohman
24a60cd2eb
Add a comment.
...
llvm-svn: 80749
2009-09-02 01:14:16 +00:00
Sean Callanan
a8ee2e7496
Fixed the asmstrings for 8-bit, 16-bit, and 32-bit ADD %rAX, imm instructions.
...
Added a 64-bit ADD %RAX, imm32 instruction.
Added all 4 forms for AND %rAX, imm and CMP %rAX, imm.
llvm-svn: 80746
2009-09-02 00:55:49 +00:00
Evan Cheng
10a5dabfd5
Fix PR4845: r77946 completely broke x86_64 Darwin (or any situation where the
...
desired triplet is a sub-target, e.g. thumbv7 vs. arm host). Reverting the
patch isn't quite right either since the previous behavior does not allow the
triplet to be overridden with -march.
llvm-svn: 80742
2009-09-02 00:19:03 +00:00
Devang Patel
34455c9c65
Disable uniqueness test for now.
...
llvm-svn: 80741
2009-09-02 00:16:33 +00:00
Devang Patel
8c7f86e698
For now disable MDNode uniquing. This fixes llvm-gcc bootstrap failure on certain Mac OS X 10.5. I am working on a proper fix.
...
llvm-svn: 80738
2009-09-01 23:56:42 +00:00
Bob Wilson
fcd618bf1d
Avoid calling removeVirtualRegisterKilled which iterates over the operands
...
to find the kill, since we already have the operand.
llvm-svn: 80736
2009-09-01 23:18:46 +00:00
Bob Wilson
efe96918f8
Refactor some code into separate functions. No functional changes.
...
llvm-svn: 80733
2009-09-01 22:51:08 +00:00
Bob Wilson
71e77ea89b
Move use of LV inside condition that guards for null LV.
...
llvm-svn: 80731
2009-09-01 22:19:00 +00:00
Daniel Dunbar
2a275102d3
Fix build warning.
...
llvm-svn: 80730
2009-09-01 22:07:12 +00:00
Daniel Dunbar
ff0e622d1c
Simplify.
...
llvm-svn: 80729
2009-09-01 22:07:06 +00:00
Daniel Dunbar
9ab9e0aa25
Fix what I believe is a copy-n-pasto introduced in r78129.
...
- Bruno, please check!!
llvm-svn: 80728
2009-09-01 22:07:00 +00:00
Daniel Dunbar
6c3843866c
X86/Encoding: Support ExternalSymbol operands in emitDisplacementField (for consistency).
...
llvm-svn: 80727
2009-09-01 22:06:53 +00:00
Daniel Dunbar
f7a14aa43d
Remove Offset from ExternalSybmol MachineOperands, this is unused (and at least partly unsupported, in X86 encoding at least).
...
llvm-svn: 80726
2009-09-01 22:06:46 +00:00
Chris Lattner
6190bb01be
debug intrinsics do not go in the callgraph, this fixes a couple
...
clang regtest failures.
llvm-svn: 80724
2009-09-01 21:37:50 +00:00
Chris Lattner
339c82df85
Fix a regression I introduced in r80708, found by llvm-test.
...
llvm-svn: 80718
2009-09-01 20:33:43 +00:00
Bruno Cardoso Lopes
92e18c456a
Fix ELF Writter related memory leaks
...
llvm-svn: 80717
2009-09-01 19:25:52 +00:00
Andreas Neustifter
e3cdafc70b
OptimalEdgeProfiling: Reading in Profiles.
...
This enables LLVM to read the OptimalEdgeProfiles.
llvm-svn: 80715
2009-09-01 19:08:51 +00:00
Andreas Neustifter
e7fa9fa3cc
Addedum to r80712, forgot to add files.
...
llvm-svn: 80713
2009-09-01 19:05:58 +00:00
Andreas Neustifter
759094e323
OptimalEdgeProfiling: Creation of profiles.
...
This adds the instrumentation and runtime part of OptimalEdgeProfiling.
llvm-svn: 80712
2009-09-01 19:03:44 +00:00
Andreas Neustifter
4fde5c756d
Small fix in ProfileEstimator that eliminates duplicated code.
...
llvm-svn: 80711
2009-09-01 19:01:59 +00:00
Jim Grosbach
e4459e466f
reduce size of SmallString to something more reasonable
...
llvm-svn: 80710
2009-09-01 18:55:08 +00:00
Chris Lattner
9b463729d7
remove CallGraphNode::replaceCallSite, it is redundant with other APIs.
...
llvm-svn: 80708
2009-09-01 18:52:39 +00:00
Bob Wilson
d7797754d4
Add support for generating code for vst{234}lane intrinsics.
...
llvm-svn: 80707
2009-09-01 18:51:56 +00:00
Chris Lattner
f61b0fb5d0
cleanup/simplify
...
llvm-svn: 80706
2009-09-01 18:50:55 +00:00
Bob Wilson
39dc89b458
Fix incorrect declarations of intrinsics in this test.
...
llvm-svn: 80705
2009-09-01 18:50:43 +00:00
Jim Grosbach
c5fcbdc7ee
Use raw_ostream instead of sstream
...
llvm-svn: 80704
2009-09-01 18:49:12 +00:00
Chris Lattner
8900f3ec57
remove a bunch of explicit code previously needed to update the
...
callgraph. This is now dead because RAUW does the job.
llvm-svn: 80703
2009-09-01 18:44:06 +00:00
David Goodwin
7f6516949b
Add hidden flags to allow binary search of post-RA scheduling errors.
...
llvm-svn: 80702
2009-09-01 18:34:03 +00:00
David Goodwin
5f582b7290
RRX reads CPSR.
...
llvm-svn: 80699
2009-09-01 18:32:09 +00:00
Chris Lattner
e33167ac35
doxygenate RefreshCallGraph, add a new 'verification mode', and run it after
...
CGSCC passes make change to ensure they are updating the callgraph correctly
(when assertions are enabled).
llvm-svn: 80698
2009-09-01 18:32:03 +00:00
Dan Gohman
4623a26ec3
Fix a typo in a comment.
...
llvm-svn: 80697
2009-09-01 18:29:01 +00:00
Sean Callanan
09b2e51711
Added TEST %rAX, $imm instructions to the Intel tables. These are required for the X86 disassembler.
...
llvm-svn: 80696
2009-09-01 18:14:18 +00:00
Chris Lattner
3f7b3d149f
simpler solution to iterator invalidation "problem" found
...
by expensive checking.
llvm-svn: 80695
2009-09-01 18:13:40 +00:00
Chris Lattner
1145e33bc6
enhance memcpy opt to turn memmoves into memcpy when the src/dest
...
don't alias. Remove an old and poorly reduced testcase that fails
with this transform for reasons unrelated to the original test.
llvm-svn: 80693
2009-09-01 17:56:32 +00:00
Bruno Cardoso Lopes
0f20a5b338
Reapply 80278
...
Add MO flags to simplify the printing of relocations.
Remove the support for printing large code model relocs (which
aren't supported anyway).
llvm-svn: 80691
2009-09-01 17:27:58 +00:00
Jim Grosbach
5afbf2b541
revert inadvertant change from previous commit
...
llvm-svn: 80689
2009-09-01 17:19:13 +00:00
Chris Lattner
b5557a7b42
random code cleanups, no functionality change.
...
llvm-svn: 80682
2009-09-01 17:09:55 +00:00
Ted Kremenek
1543d133db
Update CMake files.
...
llvm-svn: 80680
2009-09-01 17:01:02 +00:00
Jim Grosbach
9372f4d7d5
Simply LSDA lable emission to use a direct special-case output instead of
...
EmitLabel()
llvm-svn: 80677
2009-09-01 16:43:35 +00:00
Duncan Sands
1f8303bfce
Do not manipulate invalid iterators. This fixes the
...
llvm-gcc build when expensive checking is turned on.
llvm-svn: 80671
2009-09-01 15:13:02 +00:00
Sanjiv Gupta
a19e971f0c
Further refactoring of PIC16 Obj file code.
...
llvm-svn: 80670
2009-09-01 10:47:31 +00:00
Benjamin Kramer
a43ad3ddbd
Update CMakeLists.
...
llvm-svn: 80669
2009-09-01 10:24:10 +00:00
Andreas Neustifter
eb5a9d34d6
Preparation for Optimal Edge Profiling:
...
Add statistics for regular edge profiling, this enables the comparation of the
number of edges inserted by regular and optimal edge profiling.
llvm-svn: 80668
2009-09-01 10:08:39 +00:00
Andreas Neustifter
8bcd5dcf5d
Preparation for Optimal Edge Profiling:
...
Optimal edge profiling is only possible when blocks with no predecessors get an
virtual edge (BB,0) that counts the execution frequencies of this
function-exiting blocks.
This patch makes the necessary changes before actually enabling optimal edge profiling.
llvm-svn: 80667
2009-09-01 10:06:05 +00:00
Andreas Neustifter
b683b6e2ce
Preparation for Optimal Edge Profiling:
...
This adds a pass to verify the current profile against the flow conditions.
This is very helpful when later on trying to perserve the profiling information
during all passes.
llvm-svn: 80666
2009-09-01 08:48:42 +00:00
Chris Lattner
026e34c4f7
testcase for PR3601
...
llvm-svn: 80664
2009-09-01 06:33:49 +00:00
Chris Lattner
063d06527e
Change CallGraphNode to maintain it's Function as an AssertingVH
...
for sanity. This didn't turn up any bugs.
Change CallGraphNode to maintain its "callsite" information in the
call edges list as a WeakVH instead of as an instruction*. This fixes
a broad class of dangling pointer bugs, and makes CallGraph have a number
of useful invariants again. This fixes the class of problem indicated
by PR4029 and PR3601.
llvm-svn: 80663
2009-09-01 06:31:31 +00:00
Devang Patel
aa57e1085e
Add virtual destructor.
...
llvm-svn: 80660
2009-09-01 05:04:28 +00:00
Bob Wilson
ff69320427
Add test for vld{234}_lane instructions.
...
llvm-svn: 80658
2009-09-01 04:27:10 +00:00
Bob Wilson
da9817cddd
Generate code for vld{234}_lane intrinsics.
...
llvm-svn: 80656
2009-09-01 04:26:28 +00:00
Bob Wilson
33b408a10f
Fix pr4843: When an instruction has multiple destination registers that are
...
tied to different source registers, the TwoAddressInstructionPass needs to
be smarter. Change it to check before replacing a source register whether
that source register is tied to a different destination register, and if so,
defer handling it until a subsequent iteration.
llvm-svn: 80654
2009-09-01 04:18:40 +00:00
Daniel Dunbar
4fa0595b94
llvm-mc: Store MCSymbolData value as a pointer (to make MSVC happy).
...
llvm-svn: 80652
2009-09-01 04:09:03 +00:00
Jim Grosbach
f09e8d5497
SJLJ is arm/darwin only for now. force the triple for the test
...
llvm-svn: 80651
2009-09-01 02:34:49 +00:00
Jim Grosbach
345a5ae6e4
Fix compiler warnings
...
llvm-svn: 80650
2009-09-01 02:05:03 +00:00
Jim Grosbach
20eac92d88
Clean up LSDA name generation and use for SJLJ exception handling. This
...
makes an eggregious hack somewhat more palatable. Bringing the LSDA forward
and making it a GV available for reference would be even better, but is
beyond the scope of what I'm looking to solve at this point.
Objective C++ code could generate function names that broke the previous
scheme. This fixes that.
llvm-svn: 80649
2009-09-01 01:57:56 +00:00
Devang Patel
b1bff47718
Introduce DILocation.
...
llvm-svn: 80648
2009-09-01 01:14:15 +00:00
Devang Patel
71b42f2d40
Add getDirectory() and getFilename() interface to DIScope.
...
llvm-svn: 80647
2009-09-01 00:53:21 +00:00
Devang Patel
b2de5fa689
Subprogram is a scope. Derive DISubprogram from DIScope.
...
llvm-svn: 80637
2009-08-31 22:47:13 +00:00
Devang Patel
869529c58c
Rename DIBlock as DILexicalBlock.
...
llvm-svn: 80633
2009-08-31 22:00:15 +00:00
Dan Gohman
dba696afc0
Don't use an iterator which is potentially invalidated.
...
llvm-svn: 80632
2009-08-31 21:58:28 +00:00
Bob Wilson
e98396d3fc
Use early exit and reduce indentation.
...
llvm-svn: 80631
2009-08-31 21:54:55 +00:00
Bob Wilson
53b6a02dd1
If the tied registers are already the same, there is no need to change
...
them. Move the code to make that change inside the conditional.
llvm-svn: 80630
2009-08-31 21:54:16 +00:00
Richard Osborne
e7717e7b2a
Add triple parsing support for XCore.
...
llvm-svn: 80629
2009-08-31 21:51:36 +00:00
Devang Patel
e4cfcc3081
Derive DICompileUnit from DIScope.
...
llvm-svn: 80627
2009-08-31 21:34:44 +00:00
Caroline Tice
c87c1e2cfd
Add flag to mark structs for Apple Block "byref" variables; also add code to
...
modify the type and location debug information for these variables to match the
programmer's expectations.
llvm-svn: 80625
2009-08-31 21:19:37 +00:00
Dan Gohman
cc2f1eb7fe
Extend the ValuesAtScope cache to cover all expressions, not just
...
SCEVUnknowns, as the non-SCEVUnknown cases in the getSCEVAtScope code
can also end up repeatedly climing through the same expression trees,
which can be unusably slow when the trees are very tall.
Also, add a quick check for SCEV pointer equality to the main
SCEV comparison routine, as the full comparison code can be expensive
in the case of large expression trees.
These fix compile-time problems in some pathlogical cases.
llvm-svn: 80623
2009-08-31 21:15:23 +00:00
Gabor Greif
f04db57674
restore semantics of operator* (removing a FIXME I had to introduce in r80224)
...
llvm-svn: 80622
2009-08-31 20:54:23 +00:00
David Goodwin
c8985204d9
Don't mark a register live at an undef use.
...
llvm-svn: 80621
2009-08-31 20:47:02 +00:00
Devang Patel
d9b6115f27
Introduce DIScope.
...
llvm-svn: 80620
2009-08-31 20:44:45 +00:00
Devang Patel
88a26fb0f1
Oops. Fix inverted logic in assertion check.
...
llvm-svn: 80618
2009-08-31 20:27:49 +00:00
Evan Cheng
4f835f1d7d
Remove .n suffix for some 16-bit opcodes now that Darwin assembler is fixed.
...
llvm-svn: 80615
2009-08-31 20:14:07 +00:00
Daniel Dunbar
b0215efc45
X86/exp-asm-printer: Lower MachineOperand::MO_JumpTableIndex to MCOperand.
...
- Down to 7 failures on 403.gcc.
llvm-svn: 80605
2009-08-31 19:14:05 +00:00
Daniel Dunbar
443f849b6b
Stop printing old asm printing code inline with -experimental-asm-printer (this allows diffing and assembling the .s)
...
llvm-svn: 80604
2009-08-31 19:13:56 +00:00
Daniel Dunbar
524630915d
Avoid unnecessary +0 in experimental-asm-printer.
...
llvm-svn: 80603
2009-08-31 19:13:47 +00:00
Devang Patel
9fda4bd998
Simplify isDerivedType() and other predicate interface.
...
llvm-svn: 80602
2009-08-31 18:49:10 +00:00
Bill Wendling
6627c4ec82
Output a hex value, because all of the others are hex.
...
llvm-svn: 80601
2009-08-31 18:26:48 +00:00
Dale Johannesen
70e2f093a4
Fix some misspellings of XTARGET.
...
llvm-svn: 80598
2009-08-31 18:05:23 +00:00
Dale Johannesen
a1aed7bb40
Mark test as passing on all x86, which it should,
...
although I don't think anyone cares about this
feature except Darwin. PR 4825.
llvm-svn: 80596
2009-08-31 17:49:20 +00:00
Chris Lattner
a9262bb19c
cleanups pointed out by duncan
...
llvm-svn: 80595
2009-08-31 17:08:30 +00:00
Duncan Sands
9cf8bcb69d
Revert commit 80428. It completely broke exception
...
handling on x86-32 linux.
llvm-svn: 80592
2009-08-31 16:45:16 +00:00
Torok Edwin
d18e668fbc
Free the constants that have no uses in ~LLVMContext.
...
This fixes leaks from LLVMContext in multithreaded apps.
Since constants are only deleted if they have no uses, it is safe to not delete
a Module on shutdown, as many single-threaded tools do.
Multithreaded apps should however delete the Module before destroying the
Context to ensure that there are no leaks (assuming they use a different context
for each thread).
llvm-svn: 80590
2009-08-31 16:14:59 +00:00
Torok Edwin
487d576020
Fix ExplicitSymbols leak.
...
llvm-svn: 80589
2009-08-31 16:12:29 +00:00
Benjamin Kramer
3c62f5095a
Normalize makefile comments and sort cmake file lists.
...
llvm-svn: 80584
2009-08-31 13:05:24 +00:00
Daniel Dunbar
897ffadd2d
llvm-mc: Pass values to MCStreamer as MCExprs, not MCValues.
...
llvm-svn: 80578
2009-08-31 08:09:28 +00:00
Daniel Dunbar
b7b2097aac
llvm-mc: Simplify EmitAssignment ('.set' is identical to '=').
...
llvm-svn: 80577
2009-08-31 08:09:09 +00:00
Daniel Dunbar
b12b33051d
llvm-mc: Remove MCAsmParser::Parse[Paren]RelocatableExpression.
...
llvm-svn: 80576
2009-08-31 08:08:50 +00:00
Daniel Dunbar
73da11ebda
llvm-mc: Switch MCInst to storing an MCExpr* instead of an MCValue.
...
Also, use MCInst::print instead of custom code in MCAsmPrinter.
llvm-svn: 80575
2009-08-31 08:08:38 +00:00
Daniel Dunbar
7c82d56930
llvm-mc: Add MCAsmParser::Parse[Paren]Expression forms which return an MCExpr.
...
llvm-svn: 80574
2009-08-31 08:08:17 +00:00
Daniel Dunbar
945e257e99
llvm-mc: Make MCSymbolData symbol member const.
...
llvm-svn: 80573
2009-08-31 08:08:06 +00:00
Daniel Dunbar
02c7254f6d
llvm-mc: Add MCContext to MCAssembler.
...
llvm-svn: 80572
2009-08-31 08:07:55 +00:00
Daniel Dunbar
940cda2590
llvm-mc: Add MCAsmParser::getContext.
...
llvm-svn: 80571
2009-08-31 08:07:44 +00:00
Daniel Dunbar
b34a2b9da1
llvm-mc: Add MCExpr::{dump,print}.
...
llvm-svn: 80570
2009-08-31 08:07:33 +00:00
Daniel Dunbar
f363645da2
llvm-mc: Switch MCExpr construction to using static member functions, and taking the MCContext (which now owns all MCExprs).
...
llvm-svn: 80569
2009-08-31 08:07:22 +00:00
Daniel Dunbar
aecc936ea0
llvm-mc: Add some doxyment markers.
...
llvm-svn: 80568
2009-08-31 08:07:08 +00:00
Daniel Dunbar
115e4d6d7b
llvm-mc: Move AsmExpr into MC lib (as MCExpr).
...
llvm-svn: 80567
2009-08-31 08:06:59 +00:00
Chris Lattner
eedcd84803
Step #1 to giving Callgraph some sane invariants. The problems with callgraph
...
stem from the fact that we have two types of passes that need to update it:
1. callgraphscc and module passes that are explicitly aware of it
2. Functionpasses (and loop passes etc) that are interlaced with CGSCC passes
by the CGSCC Passmgr.
In the case of #1 , we can reasonably expect the passes to update the call
graph just like any analysis. However, functionpasses are not and generally
should not be CG aware. This has caused us no end of problems, so this takes
a new approach. Logically, the CGSCC Pass manager can rescan every function
after it runs a function pass over it to see if the functionpass made any
updates to the IR that affect the callgraph. This allows it to catch new calls
introduced by the functionpass.
In practice, doing this would be slow. This implementation keeps track of
whether or not the current scc is dirtied by a function pass, and, if so,
delays updating the callgraph until it is actually needed again. This was
we avoid extraneous rescans, but we still have good invariants when the
callgraph is needed.
Step #2 of the "give Callgraph some sane invariants" is to change CallGraphNode
to use a CallBackVH for the callsite entry of the CallGraphNode. This way
we can immediately remove entries from the callgraph when a FunctionPass is
active instead of having dangling pointers. The current pass tries to tolerate
these dangling pointers, but it is just an evil hack.
This is related to PR3601/4835/4029. This also reverts r80541, a hack working
around the sad lack of invariants.
llvm-svn: 80566
2009-08-31 07:23:46 +00:00
Chris Lattner
ff5f1e4d70
fix some cases where instcombine would change hte IR but not return true
...
from runOnFunction
llvm-svn: 80562
2009-08-31 06:57:37 +00:00
Chris Lattner
7e4fbddf39
cleanups, factor some code out to a helper function
...
llvm-svn: 80542
2009-08-31 06:01:21 +00:00
Chris Lattner
b822abd37d
fix a crash building SPASS by tolerating a callsite that doesn't exist
...
in the callgraph, see the big comment at the top of the testcase.
llvm-svn: 80541
2009-08-31 05:46:59 +00:00
Chris Lattner
9e50747958
comment and simplify some code.
...
llvm-svn: 80540
2009-08-31 05:34:32 +00:00
Chris Lattner
70ebbc59f3
add -debug output
...
llvm-svn: 80539
2009-08-31 05:22:48 +00:00
Chris Lattner
19dd315e67
improve -debug output, so that -debug is more likely to print when
...
instcombine is changing stuff.
llvm-svn: 80538
2009-08-31 05:17:58 +00:00
Chris Lattner
4e3e930743
fix a bug I introduced with my 'instcombine builder' refactoring
...
changes: SimplifyDemandedBits can't use the builder yet because it
has the wrong insertion point. This fixes a crash building
MultiSource/Benchmarks/PAQ8p
llvm-svn: 80537
2009-08-31 04:36:22 +00:00
Chris Lattner
2f2110affa
simplify some code by making the SCCNodes set contain Function*'s
...
instead of CallGraphNode*'s. This also papers over a callgraph
problem where a pass (in this case, MemCpyOpt) introduces a new
function into the module (llvm.memset.i64) but doesn't add it to
the call graph (nor should it, since it is a function pass).
While it might be a good idea for MemCpyOpt to not synthesize
functions in a runOnFunction(), there is no need for FunctionAttrs
to be boneheaded, so fix it there. This fixes an assertion building
176.gcc.
llvm-svn: 80535
2009-08-31 04:09:04 +00:00
Chris Lattner
edcbfe8529
only print the override triple if it exists!
...
llvm-svn: 80534
2009-08-31 03:22:35 +00:00
Chris Lattner
081375bb08
Fix PR4834, a tricky case where the inliner would resolve an
...
indirect function pointer, inline it, then go to delete the body.
The problem is that the callgraph had other references to the function,
though the inliner had no way to know it, so we got a dangling pointer
and an invalid iterator out of the deal.
The fix to this is pretty simple: stop the inliner from deleting the
function by knowing that there are references to it. Do this by making
CallGraphNodes contain a refcount. This requires moving deletion of
available_externally functions to the module-level cleanup sweep where
it belongs.
llvm-svn: 80533
2009-08-31 03:15:49 +00:00
Chris Lattner
4275cf2efa
use an accessor instead of poking internals of a node.
...
llvm-svn: 80532
2009-08-31 02:24:20 +00:00
Oscar Fuentes
c6db3ee94b
CMake: updated library dependencies.
...
llvm-svn: 80531
2009-08-31 01:58:50 +00:00
Jim Grosbach
ce713134b8
PR4747
...
Shared landing pads run into trouble with SJLJ, as the dispatch table is
mapped to call sites, and merging the pads will throw that off. There needs
to be a one-to-one mapping of landing pad exception table entries to invoke
call points.
Detecting the shared pad during lowering of SJLJ info insn't sufficient, as
the dispatch function may still need separate destinations to properly
handle phi-nodes.
llvm-svn: 80530
2009-08-31 01:35:03 +00:00
Chris Lattner
b1c3df239d
update unit test for previous change.
...
llvm-svn: 80528
2009-08-31 00:28:46 +00:00
Chris Lattner
305b115a87
Fix some nasty callgraph dangling pointer problems in
...
argpromotion and structretpromote. Basically, when replacing
a function, they used the 'changeFunction' api which changes
the entry in the function map (and steals/reuses the callgraph
node).
This has some interesting effects: first, the problem is that it doesn't
update the "callee" edges in any callees of the function in the call graph.
Second, this covers for a major problem in all the CGSCC pass stuff, which
is that it is completely broken when functions are deleted if they *don't*
reuse a CGN. (there is a cute little fixme about this though :).
This patch changes the protocol that CGSCC passes must obey: now the CGSCC
pass manager copies the SCC and preincrements its iterator to avoid passes
invalidating it. This allows CGSCC passes to mutate the current SCC. However
multiple passes may be run on that SCC, so if passes do this, they are now
required to *update* the SCC to be current when they return.
Other less interesting parts of this patch are that it makes passes update
the CG more directly, eliminates changeFunction, and requires clients of
replaceCallSite to specify the new callee CGN if they are changing it.
llvm-svn: 80527
2009-08-31 00:19:58 +00:00
Erick Tryzelaar
a64b1c1d4c
Fix header comment for bindings/ocaml/llvm/Makefile.
...
llvm-svn: 80526
2009-08-30 23:41:20 +00:00
Erick Tryzelaar
f34cb0cab4
Make sure we specify no arguments for context functions.
...
llvm-svn: 80525
2009-08-30 23:38:06 +00:00
Chris Lattner
69349a55e7
add a dump() method on callgraph.
...
llvm-svn: 80524
2009-08-30 22:24:32 +00:00
Chris Lattner
394b95c005
rename test
...
llvm-svn: 80523
2009-08-30 22:14:17 +00:00
Chris Lattner
71d51a2d79
merge all sinking tests into one and convert them to filecheck.
...
llvm-svn: 80522
2009-08-30 22:13:26 +00:00
Chris Lattner
362654f51c
convert scalar_promote to filecheck style and merge 2003-12-13-VolatilePromote.ll into it.
...
llvm-svn: 80521
2009-08-30 22:08:19 +00:00
Chris Lattner
b284f7b1d9
eliminate some uses of prcontext. Any help here would be appreciated :)
...
llvm-svn: 80520
2009-08-30 21:45:23 +00:00
Chris Lattner
2d3e0a35bd
rename test so that name reflects what it is testing for.
...
llvm-svn: 80519
2009-08-30 21:36:39 +00:00
Chris Lattner
c7d5796af8
convert to filecheck format.
...
llvm-svn: 80518
2009-08-30 21:36:06 +00:00
Chris Lattner
9e371f4b8b
suck a bunch more gep tests into getelementptr.ll and filecheckize them all.
...
llvm-svn: 80517
2009-08-30 21:31:34 +00:00
Daniel Dunbar
60745fe8e6
Tweak comment.
...
llvm-svn: 80516
2009-08-30 21:14:05 +00:00
Daniel Dunbar
bf75ffd1e2
Fix some possible-use-of-uninitialized warnings.
...
llvm-svn: 80515
2009-08-30 21:13:58 +00:00
Chris Lattner
89a9bb77e2
consolodate various GEP tests into getelementptr.ll using filecheck.
...
llvm-svn: 80514
2009-08-30 21:02:36 +00:00
Chris Lattner
2708a312db
another huge testcase, this time from 'gs' in llvm-test.
...
llvm-svn: 80513
2009-08-30 21:02:02 +00:00
Chris Lattner
3e1b67f62f
remove another poorly-reduced testcase which came from ldecod in llvm-test.
...
llvm-svn: 80512
2009-08-30 21:01:14 +00:00
Chris Lattner
8a2905e132
this testcase is 500 lines long and is distilled from bzip2, just
...
remove it.
llvm-svn: 80511
2009-08-30 21:00:11 +00:00
Chris Lattner
4698e19cba
convert to filecheck
...
llvm-svn: 80510
2009-08-30 20:48:15 +00:00
Chris Lattner
73913f4cd3
Fix PR4748: don't fold gep(bitcast(x)) into bitcast(gep) when x
...
is itself a bitcast. Since we have gep(bitcast(bitcast(y))) in this
case, just wait for the two bitcasts to get zapped. This prevents
instcombine from confusing some aliasing stuff, and allows it to
directly eliminate the load in the testcase.
llvm-svn: 80508
2009-08-30 20:38:21 +00:00
Chris Lattner
c2f2cf896e
misc cleanup
...
llvm-svn: 80507
2009-08-30 20:36:46 +00:00
Chris Lattner
a3e620caba
add getPointerAddressSpace() to GEP instruction, use the method
...
in a few scalar xforms to simplify things.
llvm-svn: 80506
2009-08-30 20:06:40 +00:00
Chris Lattner
c856539edf
eliminate InsertCastBefore, use the builder instead.
...
llvm-svn: 80505
2009-08-30 20:01:10 +00:00
Chris Lattner
606da5fed8
eliminate InsertBitCastBefore, just use the builder instead.
...
llvm-svn: 80504
2009-08-30 19:47:22 +00:00
Chris Lattner
ce3b538a7b
add a "getPointerAddressSpace" helper method to LoadInst and StoreInst.
...
llvm-svn: 80503
2009-08-30 19:45:21 +00:00
Anton Korobeynikov
3681144bd8
Add missed pattern
...
llvm-svn: 80502
2009-08-30 19:06:39 +00:00
Chris Lattner
5966341a2e
convert a bunch more calls to InsertNewInstBefore to use
...
the new Instcombine builder.
llvm-svn: 80501
2009-08-30 18:50:58 +00:00
Chris Lattner
8326d529da
fix typo
...
llvm-svn: 80500
2009-08-30 17:53:59 +00:00
Chris Lattner
947365f73f
hopefully unbreak the build by making this-> explicit for dependent
...
base class lookup.
llvm-svn: 80499
2009-08-30 17:44:10 +00:00
Anton Korobeynikov
eab572a8ff
EXTRACT_VECTOR_ELEMENT can have result type different from element type.
...
Remove the assertion and generalize the code for ARM NEON stuff.
llvm-svn: 80498
2009-08-30 17:14:54 +00:00
Torok Edwin
e14d4cdb5f
Add regular expression matching support, based on OpenBSD regexec()/regcomp()
...
implementation.
llvm-svn: 80493
2009-08-30 08:24:09 +00:00
Chris Lattner
022a582de2
give instcombine a custom IRBuilder that adds new instructions to the
...
workslist and is set to insert new instructions before the current one.
Convert a bunch of stuff that used to call InsertNewInstBefore over to
use it, greatly simplifying code and making it more natural.
There is still a lot more to go, but this is a good start.
llvm-svn: 80492
2009-08-30 07:44:24 +00:00
Daniel Dunbar
03686805e8
Update test.
...
llvm-svn: 80490
2009-08-30 07:01:09 +00:00
Chris Lattner
a0c89ee1da
add a new InstCombineWorklist::AddValue method that works even
...
if the operand is not an instruction.
Simplify most uses of AddOperandsToWorkList to use AddValue and
inline it into the one remaining callsite.
llvm-svn: 80488
2009-08-30 06:27:41 +00:00
Chris Lattner
bacd05c2eb
move AddUsersToWorkList to the worklist processing class, make the
...
argument stronger typed.
llvm-svn: 80487
2009-08-30 06:22:51 +00:00
Chris Lattner
795bfdbb55
rename AddUsesToWorkList -> AddOperandsToWorkList. The
...
former looks too much like AddUsersToWorkList and keeps
confusing me.
Remove AddSoonDeadInstToWorklist and change its two callers
to do the same thing in a simpler way.
llvm-svn: 80486
2009-08-30 06:20:05 +00:00
Daniel Dunbar
6e8b1a2530
llvm-mc/X86: Encode constant MCValue's correctly.
...
llvm-svn: 80485
2009-08-30 06:17:49 +00:00
Daniel Dunbar
6a715dccdf
llvm-mc: MCStreamer cleanups. - Remove EmitLocalSymbol, this is unsupported for now.
...
- Switch Emit{CommonSymbol,Zerofill} to take alignment in bytes (for consistency).
llvm-svn: 80484
2009-08-30 06:17:16 +00:00
Chris Lattner
905976b1db
inline the trivial AddToWorkList/RemoveFromWorkList methods
...
into their callers. simplify ReplaceInstUsesWith. Make
EraseInstFromFunction only add operands to the worklist if
there aren't too many of them (this was a scalability win
for crazy programs that was only infrequently enforced).
Switch more code to using EraseInstFromFunction instead of
duplicating it inline. Change some fcmp/icmp optimizations
to modify fcmp/icmp in place instead of creating a new one
and deleting the old one just to change the predicate.
llvm-svn: 80483
2009-08-30 06:13:40 +00:00
Chris Lattner
93ad6170fd
fix a bug I introduced in r80478 found by the build bot.
...
llvm-svn: 80482
2009-08-30 05:56:44 +00:00
Chris Lattner
97fd3599e1
refactor instcombine's worklist processing stuff out to its own class.
...
llvm-svn: 80481
2009-08-30 05:55:36 +00:00
Chris Lattner
e08503cd28
make DenseMap::clear() early exit if there is nothing to do.
...
llvm-svn: 80480
2009-08-30 05:55:04 +00:00
Chris Lattner
520bd0e689
some minor cleanups to IRBuilder, factor the insertion
...
hook out of the main IRBuilder class to allow clients to
override it.
llvm-svn: 80479
2009-08-30 05:42:59 +00:00
Chris Lattner
b2995e1eb1
more cleanups: remove some redundant code, and simplify some
...
other places.
llvm-svn: 80478
2009-08-30 05:30:55 +00:00
Chris Lattner
06c687b59e
eliminate the temporary SrcGEPOperands smallvector.
...
llvm-svn: 80477
2009-08-30 05:08:50 +00:00
Chris Lattner
e26bf17423
simplify/detangle some control flow.
...
llvm-svn: 80476
2009-08-30 05:00:50 +00:00
Chris Lattner
d7b6e913fe
simplify and cleanup some code, remove some code that just
...
does constant folding of gep's: this is already handled in
a more general way.
No functionality change.
llvm-svn: 80475
2009-08-30 04:49:01 +00:00
Chris Lattner
65c6a85cfd
default count-aa to -print-all. The whole reason to use count-aa is
...
to see what queries are being made by a transformation, we might as well
default to printing them.
llvm-svn: 80474
2009-08-30 04:25:40 +00:00
Bill Wendling
dc09af3ef5
Nuke moribund "std::string" version of EOL(..., Encoding).
...
llvm-svn: 80466
2009-08-30 00:28:57 +00:00
Dan Gohman
0dfe73ac9e
Remove an unnecessary Context argument.
...
llvm-svn: 80454
2009-08-29 23:39:38 +00:00
Dan Gohman
399d6ae4f7
Minor logic simplification.
...
llvm-svn: 80453
2009-08-29 23:37:49 +00:00
Dan Gohman
311d06902a
Add some comments.
...
llvm-svn: 80452
2009-08-29 23:36:57 +00:00
Dan Gohman
062d378603
Cleanup whitespace and indentation.
...
llvm-svn: 80451
2009-08-29 23:35:16 +00:00
Dan Gohman
07d0a55a9b
Remove some unused fields.
...
llvm-svn: 80450
2009-08-29 23:34:14 +00:00
Dan Gohman
ca73326f56
CMOV_GR8 clobbers EFLAGS when its expansion involves an xor to set
...
a register to 0. This fixes PR4814.
llvm-svn: 80445
2009-08-29 22:19:15 +00:00
Benjamin Kramer
b83f691931
Inline empty destructor.
...
llvm-svn: 80431
2009-08-29 13:38:21 +00:00
Bill Wendling
06a6057bbe
Fix warning about non-virtual destructor.
...
llvm-svn: 80429
2009-08-29 12:31:38 +00:00
Bill Wendling
39bb29f7fe
- Add target lowering methods to get the preferred format for the FDE and LSDA
...
encodings.
- Make some of the values emitted by the FDEs dependent upon the pointer
size. This is in line with how GCC does things. And it has the benefit of
working for Darwin in 64-bit mode now.
llvm-svn: 80428
2009-08-29 12:20:54 +00:00
Bill Wendling
f8b28e4327
Add a form of EOL which emits the text version of a DWARF format encoding. This
...
doesn't handle all values of the formatting. Those can be added as needed.
llvm-svn: 80427
2009-08-29 12:17:53 +00:00
Bob Wilson
57b946c94b
PR4795: Remove EEVT::isFP, isInt and isVec types used by TableGen's type
...
inferencing. As far as I can tell, these are equivalent to the existing
MVT::fAny, iAny and vAny types, and having both of them makes it harder
to reason about and modify the type inferencing code.
The specific problem in PR4795 occurs when updating a vAny type to be fAny
or iAny, or vice versa. Both iAny and fAny include vector types -- they
intersect with the set of types represented by vAny. When merging them,
choose fAny/iAny to represent the intersection. This is not perfect, since
fAny/iAny also include scalar types, but it is good enough for TableGen's
type inferencing.
llvm-svn: 80423
2009-08-29 05:53:25 +00:00
Eric Christopher
743dc0ef40
Make the augmentation size and next set of bytes agree on size,
...
and make the reference pointer size as it should be.
Fixes an abort on a testcase derived from libunwind's personality
test in 64-bit.
llvm-svn: 80414
2009-08-29 01:12:46 +00:00
Jeffrey Yasskin
9e955171ca
Fix OProfile support after r80406 changed the DebugInfo interface from
...
GlobalVariables to MDNodes.
llvm-svn: 80411
2009-08-29 00:44:16 +00:00
David Goodwin
7cb103dc8b
Another stab at fixing up register kill flags after post-RA scheduling.
...
llvm-svn: 80410
2009-08-29 00:11:13 +00:00
Anton Korobeynikov
ece642a54c
Do not assert on too wide splats we don't support.
...
llvm-svn: 80409
2009-08-29 00:08:18 +00:00
Anton Korobeynikov
cd41d07f29
Add missed extract_element pattern
...
llvm-svn: 80408
2009-08-28 23:41:26 +00:00
Devang Patel
80ae34974b
Reapply 79977.
...
Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406
2009-08-28 23:24:31 +00:00
Evan Cheng
43b9ca6f42
Let Darwin linker auto-synthesize stubs and lazy-pointers. This deletes a bunch of nasty code in ARM asm printer.
...
llvm-svn: 80404
2009-08-28 23:18:09 +00:00
Eric Christopher
d517ac0682
Nuke trailing whitespace.
...
llvm-svn: 80401
2009-08-28 22:33:43 +00:00
Daniel Dunbar
8d799c5144
Fix creation of .bca libraries with EXPORTED_SYMBOLS_LIST, this was putting the
...
llvm-ld shell wrapper script in the archive, not the relinked object!
Also, rename the temp file to avoid conflicts.
llvm-svn: 80373
2009-08-28 16:14:46 +00:00
Andreas Neustifter
7026421d61
Read Makefile.config before using LLVMGCC.
...
See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085828.html
llvm-svn: 80372
2009-08-28 16:13:45 +00:00
Torok Edwin
d70eebee51
install-sh chmods to 0755 by default, and this causes 'git diff' to show
...
that all the Makefiles changed mode.
Fix this by tellint install-sh to chmod
only to 0644, these are not executable files after all!
llvm-svn: 80371
2009-08-28 16:12:48 +00:00
Anton Korobeynikov
f43ab91486
Short-term workaround for frame-related weirdness on win64.
...
Some other minor win64 fixes as well.
Patch by Michael Beck!
llvm-svn: 80370
2009-08-28 16:06:41 +00:00
Torok Edwin
e8a5863c3f
rm needs -f
...
llvm-svn: 80363
2009-08-28 14:05:07 +00:00
Torok Edwin
483691a185
Remove the llvmprof.out from the test output, otherwise running
...
make check in a non-clean directory causes it to fail (for example when running
make check twice), since execution counts will differ.
llvm-svn: 80362
2009-08-28 13:35:44 +00:00
Andreas Neustifter
991beb9aaf
Preparation for Optimal Edge Profiling:
...
This implements the maximum spanning tree algorithm on CFGs according to
weights given by the ProfileEstimator. This is then used to implement Optimal
Edge Profiling.
llvm-svn: 80358
2009-08-28 11:28:24 +00:00
Andreas Neustifter
ed3a6bedca
Remove profiling output file because two consecutive runs of make check give
...
error.
llvm-svn: 80357
2009-08-28 10:38:26 +00:00
Andreas Neustifter
d8e04ab883
Removed unnecessary file creation during test.
...
llvm-svn: 80356
2009-08-28 10:07:41 +00:00
Andreas Neustifter
52afe22566
Pulled all tests into one test. Removed some redundant tests. Rename.
...
llvm-svn: 80355
2009-08-28 10:00:28 +00:00
Daniel Dunbar
3033db2448
Fix -Asserts warning, round two.
...
llvm-svn: 80354
2009-08-28 08:08:22 +00:00
Daniel Dunbar
2a2459a291
llvm-mc: .lsym is more unsupported than unimplemented, pending a use case appearing.
...
Also, all one of the file level flags are implemented.
llvm-svn: 80352
2009-08-28 07:08:47 +00:00
Daniel Dunbar
2701eee0ad
llvm-mc: Support .comm emission.
...
llvm-svn: 80351
2009-08-28 07:08:35 +00:00
Evan Cheng
4047b53a40
Print a nl before pic labels so they start at a new line. This makes assembly more readable.
...
llvm-svn: 80350
2009-08-28 06:59:37 +00:00
Andreas Neustifter
5155fc1b69
Since all std::cout is gone, also remove iostream include.
...
(See http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20090824/085620.html )
llvm-svn: 80349
2009-08-28 06:48:25 +00:00
Andreas Neustifter
d7f3569555
Readded test from r79615, this tests the complete profiling tool chain. Furhter
...
tests can test only parts of this system.
llvm-svn: 80348
2009-08-28 06:41:00 +00:00
Daniel Dunbar
42a39d038a
llvm-mc: Support .zerofill emission.
...
- I'm still trying to figure out the cleanest way to implement this and match the assembler, currently there are some substantial differences.
llvm-svn: 80347
2009-08-28 05:49:21 +00:00
Daniel Dunbar
a468a12dfa
llvm-mc: Tweak section alignment and size computation to match 'as' closer.
...
llvm-svn: 80345
2009-08-28 05:49:04 +00:00
Daniel Dunbar
d82ef0e923
llvm-mc: Factor getSectionData out of SwitchSection.
...
llvm-svn: 80344
2009-08-28 05:48:54 +00:00
Daniel Dunbar
96abad185d
llvm-mc: Emit .lcomm as .zerofill.
...
llvm-svn: 80343
2009-08-28 05:48:46 +00:00
Daniel Dunbar
e48a69b2a3
llvm-mc: Unique zero fill sections.
...
llvm-svn: 80342
2009-08-28 05:48:29 +00:00
Daniel Dunbar
cf72e1c03e
llvm-mc: Add const to EmitZeroFill section argument.
...
llvm-svn: 80341
2009-08-28 05:48:22 +00:00
Daniel Dunbar
93665faad0
llvm-mc: Fix thinko in emitting values.
...
llvm-svn: 80340
2009-08-28 05:48:10 +00:00
Daniel Dunbar
4b07ea1902
Add MathExtras.h OffsetToAlignment, like RoundUpToAlignment but returns the
...
offset to the next aligned integer.
llvm-svn: 80339
2009-08-28 05:48:04 +00:00
Daniel Dunbar
d46e3466e7
Fix -Asserts warning.
...
llvm-svn: 80338
2009-08-28 05:47:56 +00:00
Chris Lattner
0e8901803c
finish a half formed thought :)
...
llvm-svn: 80334
2009-08-28 04:48:54 +00:00
Daniel Dunbar
2ece038e6e
Another NO_RUNTIME_LIBRARIES tweak...
...
llvm-svn: 80331
2009-08-28 03:06:28 +00:00
Daniel Dunbar
e45cdcdca2
Tweak NO_RUNTIME_LIBS.
...
llvm-svn: 80330
2009-08-28 02:20:39 +00:00
Chris Lattner
51a25b06f7
Mark Andersen's as experimental.
...
llvm-svn: 80328
2009-08-28 00:45:47 +00:00
Chris Lattner
bda82c20f3
Fix PR3913, patch by Jakub Staszak!
...
llvm-svn: 80327
2009-08-28 00:43:14 +00:00
Evan Cheng
6da267de23
v4, v5 does not support sxtb / sxth.
...
llvm-svn: 80322
2009-08-28 00:31:43 +00:00
Bob Wilson
2cb0c3b5cb
Disable optional bindings for Apple-style builds.
...
llvm-svn: 80319
2009-08-28 00:21:13 +00:00
Bob Wilson
d581639645
Revert 76080. This broke some powerpc cross compiles.
...
It also makes the llvmCore build dependent on whatever version of llvm-gcc
happens to be installed on the build machine.
llvm-svn: 80316
2009-08-28 00:10:15 +00:00
Daniel Dunbar
8d38b8d20c
Revert r80305, I forgot a dependent change.
...
--- Reverse-merging r80305 into '.':
U tools/llvm-mc/AsmParser.cpp
llvm-svn: 80309
2009-08-27 23:58:10 +00:00
Devang Patel
3082c01d68
Closure is a very generic name. Use AppleBlock instead.
...
llvm-svn: 80307
2009-08-27 23:51:51 +00:00
Daniel Dunbar
ba33ff294e
llvm-mc: Unique sections in .zerofill.
...
llvm-svn: 80305
2009-08-27 23:45:06 +00:00
Gabor Greif
57d9b1e19a
eliminate all 80-col violations that I have introduced in my recent checkins (and some others more)
...
llvm-svn: 80304
2009-08-27 23:44:33 +00:00