Dan Gohman
a76e60a77a
Use reserve.
...
SelectionDAG::allnodes_size is linear, but that doesn't appear to
outweigh the benefit of reducing heap traffic. If it does become a
problem, we should teach SelectionDAG to keep a count of how many
nodes are live, because there are several other places where that
information would be useful as well.
llvm-svn: 52926
2008-06-30 21:04:06 +00:00
Dan Gohman
4246cf8eea
Update comments to new-style syntax.
...
llvm-svn: 52925
2008-06-30 21:00:56 +00:00
Dan Gohman
5c73a886b4
Rename ISD::LOCATION to ISD::DBG_STOPPOINT to better reflect its
...
purpose, and give it a custom SDNode subclass so that it doesn't
need to have line number, column number, filename string, and
directory string, all existing as individual SDNodes to be the
operands.
This was the only user of ISD::STRING, StringSDNode, etc., so
remove those and some associated code.
This makes stop-points considerably easier to read in
-view-legalize-dags output, and reduces overhead (creating new
nodes and copying std::strings into them) on code containing
debugging information.
llvm-svn: 52924
2008-06-30 20:59:49 +00:00
Evan Cheng
0711d68fa7
Split scheduling from instruction selection.
...
llvm-svn: 52923
2008-06-30 20:45:06 +00:00
Ted Kremenek
8eb02960db
Added some comments and some cleanups.
...
llvm-svn: 52922
2008-06-30 20:41:22 +00:00
Dale Johannesen
659aeb6186
No need to align the stack if there are no stack
...
objects. Fixes a couple of tests on Linux.
llvm-svn: 52921
2008-06-30 20:40:16 +00:00
Evan Cheng
d206e2ac2a
Remove unneeded include.
...
llvm-svn: 52920
2008-06-30 20:38:22 +00:00
Dan Gohman
937aa04e87
Reorder the fields in TargetLowering to require less padding.
...
llvm-svn: 52919
2008-06-30 20:36:26 +00:00
Dan Gohman
c7779faf00
Change bools to 1-bit bitfields to shrink ArgListEntry slightly.
...
llvm-svn: 52918
2008-06-30 20:33:57 +00:00
Dan Gohman
31c8123d07
Replace some std::vectors that showed up in heap profiling with
...
SmallVectors. Change the signature of TargetLowering::LowerArguments
to avoid returning a vector by value, and update the two targets
which still use this directly, Sparc and IA64, accordingly.
llvm-svn: 52917
2008-06-30 20:31:15 +00:00
Owen Anderson
60a1c3b1e5
Add an isReachableFromEntry method.
...
llvm-svn: 52916
2008-06-30 20:28:02 +00:00
Dan Gohman
328e26d0ac
Correct the allocation size for CCState's UsedRegs member, which
...
only needs one bit for each register. UsedRegs is a SmallVector
sized at 16, so this eliminates a heap allocation/free for every
call and return processed by Legalize on most targets.
llvm-svn: 52915
2008-06-30 20:25:31 +00:00
Devang Patel
4be1c150e4
Rename new lto2 tool as lto.
...
lto2->lto
llvm-svn: 52912
2008-06-30 18:15:01 +00:00
Ted Kremenek
245acdca67
Added ImmutableList, a companion ADT to ImmutableSet and ImmutableMap that is used to represent a purely functional list.
...
llvm-svn: 52911
2008-06-30 18:07:38 +00:00
Devang Patel
cdc51bdcd4
Remove old LTO interface.
...
llvm-svn: 52910
2008-06-30 18:05:29 +00:00
Devang Patel
a1e5413983
Remove old LTO interface.
...
llvm-svn: 52909
2008-06-30 18:04:55 +00:00
Chris Lattner
9d22f807c3
add convenience 'constructors'
...
llvm-svn: 52908
2008-06-30 18:02:44 +00:00
Devang Patel
81ea3bb55c
Move dominator info printer into tool/opt/GraphPrinters.cpp
...
llvm-svn: 52907
2008-06-30 17:32:58 +00:00
Duncan Sands
9e08148f29
ExpungeNode is only needed for new nodes! This
...
fixes CodeGen/PowerPC/2008-06-19-LegalizerCrash.ll
when using the new LegalizeTypes infrastructure.
llvm-svn: 52903
2008-06-30 16:43:45 +00:00
Duncan Sands
36410f6cde
Support for VAARG. As noted in a comment, this is
...
wrong for types like x86 long double and i1, but
no worse than what is done in LegalizeDAG.
llvm-svn: 52898
2008-06-30 13:55:15 +00:00
Duncan Sands
dd5354df89
Support for promoting select_cc operands.
...
llvm-svn: 52895
2008-06-30 11:50:11 +00:00
Cedric Venet
6b1d634013
Add loopVR files.
...
Users of VS need to manually force rebuild the X86 projet to use the last version of tablegen.
llvm-svn: 52894
2008-06-30 10:31:41 +00:00
Duncan Sands
1ae6ef83ee
Revert the SelectionDAG optimization that makes
...
it impossible to create a MERGE_VALUES node with
only one result: sometimes it is useful to be able
to create a node with only one result out of one of
the results of a node with more than one result, for
example because the new node will eventually be used
to replace a one-result node using ReplaceAllUsesWith,
cf X86TargetLowering::ExpandFP_TO_SINT. On the other
hand, most users of MERGE_VALUES don't need this and
for them the optimization was valuable. So add a new
utility method getMergeValues for creating MERGE_VALUES
nodes which by default performs the optimization.
Change almost everywhere to use getMergeValues (and
tidy some stuff up at the same time).
llvm-svn: 52893
2008-06-30 10:19:09 +00:00
Evan Cheng
5447e4331b
Eliminate TargetRegisterDesc::ImmSubRegs. It's no longer in use.
...
llvm-svn: 52892
2008-06-30 07:32:56 +00:00
Evan Cheng
da3db11db3
- Re-apply 52748 and friends with fix. GetConstantStringInfo() returns an empty string for ConstantAggregateZero case which surprises selectiondag.
...
- Correctly handle memcpy from constant string which is zero-initialized.
llvm-svn: 52891
2008-06-30 07:31:25 +00:00
Chris Lattner
2e253b426f
check in anton's patch to make inlining happen in a determinstic order
...
and fix the bug that it uncovers: inlining a pattern fragment could bring
in other pattern fragments if the inlinee hadn't already been inlined.
llvm-svn: 52888
2008-06-30 03:02:03 +00:00
Chris Lattner
9d3740ed1c
Implement split and scalarize for SELECT_CC, fixing PR2504
...
llvm-svn: 52887
2008-06-30 02:43:01 +00:00
Nick Lewycky
21d0a8cca0
Because of the laziness, the required passes must exist even after
...
LoopVR::runOnFunction runs.
This should accomplish that, but it doesn't. I think that's a PassManager bug,
but without a consumer of LoopVR in the tree, I can't give steps to reproduce.
llvm-svn: 52886
2008-06-30 01:04:39 +00:00
Nick Lewycky
48b1fd74dc
Add a value range analysis that lazily computes ranges using ScalarEvolutions.
...
llvm-svn: 52885
2008-06-30 00:04:21 +00:00
Anton Korobeynikov
a7c583d584
Revert (52748 and friends):
...
Move GetConstantStringInfo to lib/Analysis. Remove
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
This unbreaks llvm-gcc bootstrap.
llvm-svn: 52884
2008-06-29 17:57:03 +00:00
Anton Korobeynikov
2e052a81fd
Start refactoring of asmprinters: provide a TAI hook, which will select a 'section kind' for a global.
...
llvm-svn: 52868
2008-06-28 13:45:57 +00:00
Anton Korobeynikov
3c21b05225
Unbreak
...
llvm-svn: 52866
2008-06-28 11:10:06 +00:00
Anton Korobeynikov
a54216acf3
Temporary rever invalid commit
...
llvm-svn: 52865
2008-06-28 11:09:48 +00:00
Anton Korobeynikov
ab9ff5a44f
Move printing of module-level GVs into dedicated helper
...
llvm-svn: 52864
2008-06-28 11:09:32 +00:00
Anton Korobeynikov
9c53d0f0df
Use common naming convention
...
llvm-svn: 52863
2008-06-28 11:09:17 +00:00
Anton Korobeynikov
76b8828c25
Factor out stuff into helper function
...
llvm-svn: 52862
2008-06-28 11:09:01 +00:00
Anton Korobeynikov
7d345eb4b1
Cleanup
...
llvm-svn: 52861
2008-06-28 11:08:44 +00:00
Anton Korobeynikov
016d1d0470
Remove X86SharedAsmPrinter
...
llvm-svn: 52860
2008-06-28 11:08:27 +00:00
Anton Korobeynikov
5643cb7ecc
whitespace cleanup
...
llvm-svn: 52859
2008-06-28 11:08:09 +00:00
Anton Korobeynikov
4e9dfe8391
Make intel asmprinter child of generic asmprinter, not x86 shared asm printer. This leads to some code duplication, which will be resolved later.
...
llvm-svn: 52858
2008-06-28 11:07:54 +00:00
Anton Korobeynikov
bc7cce6b74
Cleanup
...
llvm-svn: 52857
2008-06-28 11:07:35 +00:00
Anton Korobeynikov
44e99f47ad
Whitespace cleanup
...
llvm-svn: 52856
2008-06-28 11:07:18 +00:00
Chris Lattner
3cffa471d9
Really fix the bootstrap failure.
...
llvm-svn: 52854
2008-06-28 06:24:50 +00:00
Chris Lattner
1701328675
Add back the capability to include nul characters in strings with
...
GetConstantStringInfo. This will hopefully restore llvm-gcc to
happy bootstrap land.
llvm-svn: 52851
2008-06-28 05:33:32 +00:00
Chris Lattner
ebf1f67193
Tighten up checking.
...
llvm-svn: 52850
2008-06-28 04:37:04 +00:00
Dan Gohman
6f7b5a6392
When folding a bitcast into a load or store, preserve the alignment
...
information of the original load or store, which is checked to be
at least as good, and possibly better.
llvm-svn: 52849
2008-06-28 00:45:22 +00:00
Seo Sanghyeon
8f7291387f
Fix GetMainExecutable. Patch by Sam Bishop.
...
llvm-svn: 52847
2008-06-27 22:55:30 +00:00
Evan Cheng
9a357637ef
Looks like this condition is inverted.
...
llvm-svn: 52841
2008-06-27 22:11:49 +00:00
Owen Anderson
05546f67cb
Add a NextPowerOf2 function to calculate the next power of two greater than a given integer.
...
llvm-svn: 52839
2008-06-27 21:48:21 +00:00
Chris Lattner
36b4e8f2fe
implement some fixme's by making "autorenaming" in the value symbol table not
...
thrash the heap with string stuff (e.g. utostr).
llvm-svn: 52838
2008-06-27 21:26:26 +00:00
Chris Lattner
42e983e5a9
simplify some code to avoid string thrashing.
...
llvm-svn: 52837
2008-06-27 21:25:24 +00:00
Anton Korobeynikov
266f1cc1e4
Use StringSet instead of std::set<std::string>
...
llvm-svn: 52836
2008-06-27 21:22:49 +00:00
Chris Lattner
7775588132
add a helper.
...
llvm-svn: 52835
2008-06-27 21:15:25 +00:00
Chris Lattner
e43649fa62
Add a new version of Module::getFunction that takes a const char* instead
...
of a std::string. This avoids copying the string to the heap in common
cases. Patch by Pratik Solanki!
llvm-svn: 52834
2008-06-27 21:09:10 +00:00
Chris Lattner
5c91f4d7ba
Tweak IRBuilder to explicitly call the setName(const char*) method on Value
...
instead of passing the name into the instruction ctors. Since most
instruction ctors take their name as an std::string, this avoids copying the
string to the heap and a malloc and free.
Patch by Pratik Solanki!
llvm-svn: 52832
2008-06-27 18:49:21 +00:00
Cedric Venet
69cb7be3b1
Add an include file needed for VS.
...
Add two new file to codegen project (VS).
This unbreak the build for VS.
llvm-svn: 52831
2008-06-27 18:00:09 +00:00
Devang Patel
abc6e6ab9f
Add dominator info printer pass.
...
llvm-svn: 52829
2008-06-27 16:43:21 +00:00
Anton Korobeynikov
c1e80a759f
Provide correct encoding for PPC LWARX instructions.
...
Patch by Gary Benson!
llvm-svn: 52828
2008-06-27 16:10:20 +00:00
Argyrios Kyrtzidis
969cc2aea3
Since we are using GCC to assemble the program, make sure the assembly syntax is AT&T.
...
llvm-svn: 52827
2008-06-27 15:08:59 +00:00
Duncan Sands
0690fdbef2
Regression test for PR2443.
...
llvm-svn: 52826
2008-06-27 14:22:20 +00:00
Duncan Sands
8269d5ca0a
Use the c modifier to tell llvm-ar not to issue a
...
warning when creating the archive (the warning
causes the test to fail).
llvm-svn: 52824
2008-06-27 10:52:12 +00:00
Bill Wendling
196c78f0be
Reduce number of times .size() is called on a vector. Rename some variables to
...
match normal naming scheme.
llvm-svn: 52820
2008-06-27 07:13:44 +00:00
Owen Anderson
413f7d90db
Use a SmallSet when we can to reduce memory allocations.
...
This speeds up a particular testcase from 0.0302s to 0.0222s in LiveVariables.
llvm-svn: 52819
2008-06-27 07:05:59 +00:00
Owen Anderson
4f024862f6
Cache subregister relationships in a set in TargetRegisterInfo to allow faster lookups.
...
This speeds up LiveVariables from 0.6279s to 0.6165s on kimwitu++.
llvm-svn: 52818
2008-06-27 06:56:04 +00:00
Chris Lattner
dc3f946137
fix the regressions from Eric's patch by making GetConstantStringInfo
...
tolerate a non-nul-terminated string, and handling a direct global
reference.
llvm-svn: 52813
2008-06-27 03:36:51 +00:00
Chris Lattner
735705bc3e
simplify this check, GetConstantStringInfo validates that a
...
global is constant already. No functionality change.
llvm-svn: 52812
2008-06-27 03:18:41 +00:00
Chris Lattner
501c0b82d6
test doesn't need eh info
...
llvm-svn: 52811
2008-06-27 03:14:20 +00:00
Chris Lattner
b32a9ef00f
when linking globals, make sure to preserve the address space of the global.
...
llvm-svn: 52810
2008-06-27 03:10:24 +00:00
Bill Wendling
54c3377d01
More cruft from revert...
...
llvm-svn: 52809
2008-06-27 01:37:37 +00:00
Bill Wendling
3d92cbffc6
Cruft left from patch revert...sorry. :-(
...
llvm-svn: 52808
2008-06-27 01:32:08 +00:00
Bill Wendling
fcbb9525d0
Reverting broken patch r52803.
...
llvm-svn: 52806
2008-06-27 01:27:56 +00:00
Owen Anderson
21498f52b2
Don't perform expensive queries checking for super and sub registers when we know that there aren't any.
...
This speed up LiveVariables on instcombine at -O0 -g from 0.3855s to 0.3503s. Look for more improvements in this area soon!
llvm-svn: 52804
2008-06-27 01:22:50 +00:00
Bill Wendling
f96d046d7c
- Remove a use of std::vector.
...
- Make sure that we're not recalculating the size of a vector
that never changes.
llvm-svn: 52803
2008-06-27 00:56:36 +00:00
Bill Wendling
c758698d2c
Refactor the DebugInfoDesc stuff out of the MachineModuleInfo file. Clean up
...
some uses of std::vector, where it's return std::vector by value. Yuck!
llvm-svn: 52800
2008-06-27 00:09:40 +00:00
Gordon Henriksen
3b2e269475
Add a note for Thunderbird users to the Developer Policy.
...
llvm-svn: 52797
2008-06-26 22:58:37 +00:00
Chris Lattner
4ca6973589
allow updating the MPM, so that you can use one FunctionPAssManager with
...
multiple ModuleProviders, e.g. with the JIT.
llvm-svn: 52796
2008-06-26 22:26:45 +00:00
Evan Cheng
f79a4a1f01
XFAIL for now.
...
llvm-svn: 52795
2008-06-26 22:09:29 +00:00
Bill Wendling
066eabb04d
Remove warnings about shadowed and unused variables.
...
llvm-svn: 52791
2008-06-26 18:11:45 +00:00
Ted Kremenek
8ad5228225
Update VS project files. The clang executable now depends on the LLVM Analysis library.
...
llvm-svn: 52789
2008-06-26 17:53:12 +00:00
Owen Anderson
1aab7a5b2a
Use a DenseMap instead of an std::map for mangled name lookup. This is
...
improves AsmPrinter runtime on instcombine from 0.3920s to 0.3836s.
llvm-svn: 52787
2008-06-26 17:20:16 +00:00
Chris Lattner
df1cbdd645
duncan points out that isOperationLegal includes a check for
...
type legality. Thanks Duncan!
llvm-svn: 52786
2008-06-26 17:16:00 +00:00
Owen Anderson
7df0d58535
Don't create a whole new string just to copy the elements into it.
...
llvm-svn: 52785
2008-06-26 17:06:02 +00:00
Owen Anderson
1fb47ad928
Use the -enable-pre flag so this test doesn't fail.
...
llvm-svn: 52784
2008-06-26 17:03:28 +00:00
Matthijs Kooijman
f61fd54237
Make LLVM compile on DragonFly BSD (PR2499).
...
Patch by Hasso Tepper!
llvm-svn: 52781
2008-06-26 10:36:58 +00:00
Matthijs Kooijman
b032fedf7d
Add missing semicolumn in my last commit.
...
llvm-svn: 52780
2008-06-26 09:49:38 +00:00
Matthijs Kooijman
1b60621ac9
Improve comments wrt createInternalize.
...
llvm-svn: 52779
2008-06-26 09:48:11 +00:00
Bill Wendling
3fdca23ee1
Cleanup for unitialized types. Patch by Jean-Daniel Dupas!
...
llvm-svn: 52775
2008-06-26 08:32:05 +00:00
Chris Lattner
d4741e803f
"An improved Mach-O file type detection for sys::IdentifyFileType()
...
This patch add supports for single architecture mach-o files (the current implementation only support Universal Binary), and solve the signature conflict between java class and Universal Binary magics.
Note that this function will always returned dynamic library for Universal Binaries (like the current implementation) because the binary type is not include in the file header."
Patch by Jean-Daniel Dupas!
llvm-svn: 52766
2008-06-26 05:17:18 +00:00
Owen Anderson
db0a48b1a7
Reserve the size we'll need in advance.
...
llvm-svn: 52763
2008-06-26 04:47:41 +00:00
Dale Johannesen
0e28b3b9ee
Allow for rounding up of stack frame.
...
llvm-svn: 52751
2008-06-26 01:55:32 +00:00
Dale Johannesen
a2de8eab61
Fixes the last x86-64 test failure in compat.exp:
...
<16 x float> is 64-byte aligned (for some reason),
which gets us into the stack realignment code. The
computation changing FP-relative offsets to SP-relative
was broken, assiging a spill temp to a location
also used for parameter passing. This
fixes it by rounding up the stack frame to a multiple
of the largest alignment (I concluded it wasn't fixable
without doing this, but I'm not very sure.)
llvm-svn: 52750
2008-06-26 01:51:13 +00:00
Eric Christopher
3f1c75c4d8
Remove unused function.
...
llvm-svn: 52749
2008-06-26 01:19:35 +00:00
Eric Christopher
d0ab9c47e6
Move GetConstantStringInfo to lib/Analysis. Remove
...
string output routine from Constant. Update all
callers. Change debug intrinsic api slightly to
accomodate move of routine, these now return values
instead of strings.
llvm-svn: 52748
2008-06-26 00:31:12 +00:00
Chris Lattner
b1e66ce3bb
when we know the signbit of an input to uint_to_fp is zero,
...
change it to sint_to_fp on targets where that is cheaper (and
visaversa of course). This allows us to compile uint_to_fp to:
_test:
movl 4(%esp), %eax
shrl $23, %eax
cvtsi2ss %eax, %xmm0
movl 8(%esp), %eax
movss %xmm0, (%eax)
ret
instead of:
.align 3
LCPI1_0: ## double
.long 0 ## double least significant word 4.5036e+15
.long 1127219200 ## double most significant word 4.5036e+15
.text
.align 4,0x90
.globl _test
_test:
subl $12, %esp
movl 16(%esp), %eax
shrl $23, %eax
movl %eax, (%esp)
movl $1127219200, 4(%esp)
movsd (%esp), %xmm0
subsd LCPI1_0, %xmm0
cvtsd2ss %xmm0, %xmm0
movl 20(%esp), %eax
movss %xmm0, (%eax)
addl $12, %esp
ret
llvm-svn: 52747
2008-06-26 00:16:49 +00:00
Owen Anderson
b55675e1db
Remember which MachineOperand we were processing, so we don't have to scan the list to find it again later.
...
This speeds up live intervals from 0.37s to 0.30s on instcombine.
llvm-svn: 52745
2008-06-25 23:39:39 +00:00
Dan Gohman
39b07db75a
Fix the text in an assert string.
...
llvm-svn: 52744
2008-06-25 22:14:43 +00:00
Evan Cheng
3fc2372d3a
- Fix a x86 vector isel bug: illegal transformation of a vector_shuffle into a
...
shift.
- Add a readme entry for a missing vector_shuffle optimization that results in
awful codegen.
llvm-svn: 52740
2008-06-25 20:52:59 +00:00
Duncan Sands
33ff5c8d0d
Add support for expanding PPC 128 bit floats.
...
For this it is convenient to permit floats to
be used with EXTRACT_ELEMENT, so I tweaked
things to allow that. I also added libcalls
for ppcf128 to i32 forms of FP_TO_XINT, since
they exist in libgcc and this case can certainly
occur (and does occur in the testsuite) - before
the i64 libcall was being used. Also, the
XINT_TO_FP result seemed to be wrong when
the argument is an i128: the wrong fudge
factor was added (the i32 and i64 cases were
handled directly, but the i128 code fell
through to some generic softening code which
seemed to think it was i64 to f32!). So I
fixed it by adding a fudge factor that I
found in my breakfast cereal.
llvm-svn: 52739
2008-06-25 20:24:48 +00:00
Chris Lattner
58ecfbdad6
Implement JIT support for global aliases, patch by David Chisnall!
...
llvm-svn: 52738
2008-06-25 20:21:35 +00:00
Evan Cheng
88ca48b09d
Restore DeadArgElim back to 52570. It's breaking 447.dealII.
...
llvm-svn: 52736
2008-06-25 18:10:09 +00:00
Chris Lattner
d3406fc2a7
Switch the PPC backend and target-independent JIT to use the libsystem
...
InvalidateInstructionCache method instead of calling through
a hook on the JIT. This is a host feature, not a target feature.
llvm-svn: 52734
2008-06-25 17:18:44 +00:00
Chris Lattner
b4325a8316
fix compilation errors in my previous patch
...
llvm-svn: 52733
2008-06-25 17:17:53 +00:00
Chris Lattner
881d537d2c
Add a new InvalidateInstructionCache method to sys::Memory.
...
llvm-svn: 52731
2008-06-25 17:14:10 +00:00
Chris Lattner
d95b74870e
jump threading can introduce allocas, make sure we promote
...
them back to registers!
llvm-svn: 52729
2008-06-25 16:54:18 +00:00
Chris Lattner
0e06949726
run mem2reg after the second jump threading pass in llvm-ld.
...
llvm-svn: 52728
2008-06-25 16:51:55 +00:00
Chris Lattner
651e66d14c
remove a bunch of dead options that never did anything.
...
llvm-svn: 52727
2008-06-25 16:44:52 +00:00
Chris Lattner
10d75bb88b
remove some dead options.
...
llvm-svn: 52726
2008-06-25 16:44:08 +00:00
Dan Gohman
906b630f83
SimpleInstructionSelector is here no more.
...
llvm-svn: 52725
2008-06-25 16:38:59 +00:00
Duncan Sands
6920b254ad
Add/complete support for integer and float
...
select_cc and friends. This code could be
factorized a bit but I'm not sure that it's
worth it.
llvm-svn: 52724
2008-06-25 16:34:21 +00:00
Duncan Sands
1b03c2ac98
Pacify gcc-4.3.
...
llvm-svn: 52723
2008-06-25 16:31:18 +00:00
Dan Gohman
aa01afd47c
Remove the OrigVT member from AtomicSDNode, as it is redundant with
...
the base SDNode's VTList.
llvm-svn: 52722
2008-06-25 16:07:49 +00:00
Chris Lattner
99fea6f405
simplify shell syntax to work better on solaris, patch by
...
Nathan Keynes!
llvm-svn: 52721
2008-06-25 16:03:42 +00:00
Mon P Wang
6a490371c9
Added MemOperands to Atomic operations since Atomics touches memory.
...
Added abstract class MemSDNode for any Node that have an associated MemOperand
Changed atomic.lcs => atomic.cmp.swap, atomic.las => atomic.load.add, and
atomic.lss => atomic.load.sub
llvm-svn: 52706
2008-06-25 08:15:39 +00:00
Matthijs Kooijman
2e2001d8b9
Fix a (false) warning on darwin.
...
llvm-svn: 52705
2008-06-25 08:12:16 +00:00
Matthijs Kooijman
4e1cf1e7d7
Fix some cosmetics in comments.
...
llvm-svn: 52704
2008-06-25 08:10:21 +00:00
Evan Cheng
5fd28b54c7
- Use O(1) check of basic block size limit.
...
- Avoid speculatively execute vector ops.
llvm-svn: 52703
2008-06-25 07:50:12 +00:00
Chris Lattner
c9c81fb0df
Fix PR2488, a case where we deleted stack restores too aggressively.
...
llvm-svn: 52702
2008-06-25 05:59:28 +00:00
Evan Cheng
73db52ebf8
Enable two-address remat by default.
...
llvm-svn: 52701
2008-06-25 01:16:38 +00:00
Owen Anderson
ee9c30d435
Use push_back rather than operator[], which is incorrect in this cases. Unfortunately, this slow the testcase down a little bit,
...
but only marginally.
llvm-svn: 52700
2008-06-25 01:05:05 +00:00
Gabor Greif
845eb8ea44
Use present tense when talking about User layout. It is implemented now.
...
llvm-svn: 52699
2008-06-25 00:10:22 +00:00
Dan Gohman
5ceb8b676c
Append to the ActiveTimers std::vector before looking at the timer instead
...
of after, so that any reallocation it does doesn't get counted for the pass
being timed. This probably doesn't account for a timing discrepancy I was
looking into, but I'm fixing it anyway.
llvm-svn: 52693
2008-06-24 22:07:07 +00:00
Dale Johannesen
6316bc705e
v2f32 is now a valid (MMX) type which breaks this
...
test (doesn't work for any MMX vector types, it's
not me). Rewritten to use v2i16 which is generic
and going to stay that way; I think that preserves
the point of the test.
llvm-svn: 52692
2008-06-24 22:03:36 +00:00
Dale Johannesen
e5f4ffbdf1
Add v2f32 (MMX) type to X86. Support is primitive:
...
load,store,call,return,bitcast. This is enough to
make call and return work.
llvm-svn: 52691
2008-06-24 22:01:44 +00:00
Owen Anderson
79c69bc45f
In ConstantArray::getAsString(), we know the size of the resultant string in advance so we can pre-allocate it and just fill in
...
the entries. This improves the time for the AsmPrinter on InstructionCombining.cpp from 0.4248s to 0.3370s.
llvm-svn: 52690
2008-06-24 21:58:29 +00:00
Owen Anderson
230b3eb80c
Use SmallVector instead of std::vector for a minor compile time improvement.
...
llvm-svn: 52689
2008-06-24 21:44:59 +00:00
Dan Gohman
04c8bd7e11
Revert 52645, the loop unroller changes. It caused a regression in 252.eon.
...
llvm-svn: 52688
2008-06-24 20:44:42 +00:00
Dan Gohman
4be44e62b3
Fix a typo in a comment.
...
llvm-svn: 52687
2008-06-24 18:00:21 +00:00
Dan Gohman
9aaafadc60
Make Allocate<T>() return a T* instead of a void*. And use
...
static_cast instead of reinterpret_cast.
llvm-svn: 52686
2008-06-24 17:49:26 +00:00
Tanya Lattner
42ba346df6
Regenerate configure.
...
llvm-svn: 52685
2008-06-24 17:49:13 +00:00
Dan Gohman
61163850af
Use const_cast instead of a C-style cast.
...
llvm-svn: 52684
2008-06-24 17:47:37 +00:00
Dan Gohman
e1789e3783
Correct a comment.
...
llvm-svn: 52683
2008-06-24 17:46:48 +00:00
Chris Lattner
01602a18a9
Add support for building on solaris, working around namespace
...
polution problems from system headers. Patch by Nathan Keynes!
llvm-svn: 52682
2008-06-24 17:44:42 +00:00
Dan Gohman
d5cd61dca6
Pass std::string by reference. Thanks Chris!
...
llvm-svn: 52678
2008-06-24 16:40:22 +00:00
Matthijs Kooijman
c702e1d32f
Commit the new DeadArgElim pass again, this time with the gcc bootstrap failures fixed.
...
Also add a testcase to reproduce the gcc bootstrap failure in very much reduced form.
llvm-svn: 52677
2008-06-24 16:30:26 +00:00
Matthijs Kooijman
a2509a1a48
Allow the test suite to be checked out into projects/test-suite.
...
We will keep the old projects/llvm-test working for existing installs.
The changes to configure are made manually, since I lack autoconf-2.6. Someone
might want to run AutoGen.sh to see if that changes anything.
llvm-svn: 52675
2008-06-24 13:01:57 +00:00
Matthijs Kooijman
8fd284185c
Update testing documentation with more consistent terminology.
...
All of LLVM's testing features are now referred to as the "Testing
infrastructure", the DejaGNU tests are just that, and the whole program tests
are referred to as the "test suite".
llvm-svn: 52674
2008-06-24 12:58:31 +00:00
Matthijs Kooijman
19a6469e1b
Rename a few variables to be more consistent.
...
llvm-svn: 52672
2008-06-24 09:14:10 +00:00
Evan Cheng
3f2ceac565
If it's determined safe, remat MOV32r0 (i.e. xor r, r) and others as it is instead of using the longer MOV32ri instruction.
...
llvm-svn: 52670
2008-06-24 07:10:51 +00:00
Dan Gohman
4aef821183
Fix some signed vs. unsigned issues in array and vector handling.
...
llvm-svn: 52664
2008-06-24 01:17:52 +00:00
Dan Gohman
02a2aaf2e7
Add a note about a potential PIC optimization.
...
llvm-svn: 52663
2008-06-24 00:53:07 +00:00
Dan Gohman
76600aa35c
Fixes for being compiled PIC on Linux. This isn't the most
...
general solution possible, but it's a fairly simple one.
Based on a patch from the OpenGTL project!
llvm-svn: 52662
2008-06-24 00:50:01 +00:00
Owen Anderson
04bbf4b5b7
Remove an incorrect comment.
...
llvm-svn: 52660
2008-06-24 00:15:10 +00:00
Owen Anderson
c2ec2f20f9
Use InstrSlots::NUM rather than pre-dividing by four. Also, mark this const.
...
llvm-svn: 52659
2008-06-24 00:08:35 +00:00
Dan Gohman
6269cc1ced
Comment fixes, and make Schedule() pure virtual.
...
llvm-svn: 52658
2008-06-24 00:02:44 +00:00
Dan Gohman
9cc3f68ab1
A brief survey of priority_queue usage in the tree turned this up
...
as a questionable case, but the code isn't actually needed.
llvm-svn: 52657
2008-06-23 23:51:16 +00:00
Dan Gohman
cb236f7de9
Add a clear() method to PriorityQueue.
...
llvm-svn: 52656
2008-06-23 23:47:46 +00:00
Bill Wendling
c44659b92a
This situation can occur:
...
,------.
| |
| v
| t2 = phi ... t1 ...
| |
| v
| t1 = ...
| ... = ... t1 ...
| |
`------'
where there is a use in a PHI node that's a predecessor to the defining
block. We don't want to mark all predecessors as having the value "alive" in
this case. Also, the assert was too restrictive and didn't handle this case.
llvm-svn: 52655
2008-06-23 23:41:14 +00:00
Dan Gohman
0d8a61eb60
Use the new PriorityQueue in ScheduleDAGList too, which also
...
needs arbitrary-element removal.
llvm-svn: 52654
2008-06-23 23:40:09 +00:00
Owen Anderson
ba3e9de279
Add getScaledIntervalSize, which gives a measure of the size of an interval that is independent of the scaling of
...
the function due to empty index slots. This is suitable for use in backend heuristics that need to reason about the density
of an interval.
llvm-svn: 52652
2008-06-23 23:25:37 +00:00
Dan Gohman
abd8f41c81
Use use_empty() instead of getNumUses(), avoiding a use list traversal.
...
llvm-svn: 52651
2008-06-23 23:23:49 +00:00