Dan Gohman
022c4b719c
Use an assert to check that SelectCode isn't called on
...
nodes that are already selected.
llvm-svn: 58763
2008-11-05 18:30:52 +00:00
Dan Gohman
cd2c7f16c0
The HadDelete field is no longer used.
...
llvm-svn: 58761
2008-11-05 17:35:14 +00:00
Dan Gohman
1db84e57c5
Reintroduce a comment that was removed with the AddToISelQueue
...
changes.
llvm-svn: 58760
2008-11-05 17:16:24 +00:00
Dan Gohman
d308ef44f6
Update some comments to reflect the new code.
...
llvm-svn: 58759
2008-11-05 17:13:57 +00:00
Richard Osborne
efd7edc731
Test commit, add Makefile for XCore target, more to follow.
...
llvm-svn: 58755
2008-11-05 09:53:58 +00:00
Duncan Sands
f56e2fb5c2
Fix thinko in ppcf128 expansion of truncating store.
...
llvm-svn: 58753
2008-11-05 07:17:27 +00:00
Evan Cheng
1378d6c7a9
Add more vector move low and zero-extend patterns.
...
llvm-svn: 58752
2008-11-05 06:04:51 +00:00
Evan Cheng
1bde698192
Type of shuffle mask has changed.
...
llvm-svn: 58751
2008-11-05 06:04:18 +00:00
Evan Cheng
fdd6d65e39
Indentation.
...
llvm-svn: 58750
2008-11-05 06:03:38 +00:00
Dan Gohman
cd4b68bee9
Eliminate the ISel priority queue, which used the topological order for a
...
priority function. Instead, just iterate over the AllNodes list, which is
already in topological order. This eliminates a fair amount of bookkeeping,
and speeds up the isel phase by about 15% on many testcases.
The impact on most targets is that AddToISelQueue calls can be simply removed.
In the x86 target, there are two additional notable changes.
The rule-bending AND+SHIFT optimization in MatchAddress that creates new
pre-isel nodes during isel is now a little more verbose, but more robust.
Instead of either creating an invalid DAG or creating an invalid topological
sort, as it has historically done, it can now just insert the new nodes into
the node list at a position where they will be consistent with the topological
ordering.
Also, the address-matching code has logic that checked to see if a node was
"already selected". However, when a node is selected, it has all its uses
taken away via ReplaceAllUsesWith or equivalent, so it won't recieve any
further visits from MatchAddress. This code is now removed.
llvm-svn: 58748
2008-11-05 04:14:16 +00:00
Dan Gohman
215587186e
Use getTargetConstant instead of getConstant for nodes that should not be visited
...
by isel and potentially forced into registers.
llvm-svn: 58747
2008-11-05 02:06:09 +00:00
Evan Cheng
2702e22b83
Rename isGVLazyPtr to isGVNonLazyPtr relocation. This represents Mac OS X
...
indirect gv reference. Please don't call it lazy.
llvm-svn: 58746
2008-11-05 01:50:32 +00:00
Devang Patel
5ca10e5295
New test case.
...
llvm-svn: 58745
2008-11-05 01:40:30 +00:00
Devang Patel
de9b95965a
Do now allow InlineAlways pass to remove dead functions.
...
llvm-svn: 58744
2008-11-05 01:39:16 +00:00
Devang Patel
b55a78e553
Silence unused variable warnings.
...
llvm-svn: 58743
2008-11-05 01:37:40 +00:00
Devang Patel
bc6ef4c191
Check Attribute::NoInline.
...
llvm-svn: 58742
2008-11-05 01:37:05 +00:00
Bill Wendling
986e386794
Remove dead variable.
...
llvm-svn: 58741
2008-11-05 00:56:35 +00:00
Bill Wendling
8c86d20576
Simplify the allocated size calculation.
...
llvm-svn: 58740
2008-11-05 00:54:27 +00:00
Bill Wendling
2461aaa183
Fix comment
...
llvm-svn: 58739
2008-11-05 00:46:15 +00:00
Owen Anderson
df29b0d7b2
Use the new predicate to control when we do prealloc splitting. Fix a small bug.
...
llvm-svn: 58738
2008-11-05 00:32:13 +00:00
Evan Cheng
8a5c3c5cc3
Debugging output tweak.
...
llvm-svn: 58737
2008-11-05 00:22:28 +00:00
Oscar Fuentes
afb65a6c2a
CMake: updated list of source files.
...
llvm-svn: 58736
2008-11-05 00:11:22 +00:00
Bill Wendling
e73f31f526
Some code simplification. It now doesn't generate a prologue if the epilogue
...
isn't going to be generated.
llvm-svn: 58734
2008-11-05 00:00:21 +00:00
Dan Gohman
c162a200ad
Add a new pass to simplify specific half_powr function calls. This is
...
a specialized pass that it not likely to be generally useful.
llvm-svn: 58732
2008-11-04 23:41:45 +00:00
Devang Patel
bc0cbd20b0
On darwin, 32-bit x86 target is i386-apple-darwin...
...
llvm-svn: 58731
2008-11-04 23:13:50 +00:00
Nuno Lopes
a5d766c285
fix memory leak in pass manager when adding an analysis pass that already existed. as pass manager takes ownership of the added passes, it has to delete the pass if it isnt added to the pass list
...
tweak the opt tool so that it doesnt access a Pass after the ownership was taken by the pass manager
llvm-svn: 58730
2008-11-04 23:03:58 +00:00
Anton Korobeynikov
169173000f
Fix tests not to emit IR output
...
llvm-svn: 58729
2008-11-04 23:02:39 +00:00
Bill Wendling
214f515922
Small simplification of the stack guard type.
...
llvm-svn: 58728
2008-11-04 22:54:43 +00:00
Bill Wendling
79a8798e07
- Add a "getOrInsertGlobal" method to the Module class. This acts similarly to
...
"getOrInsertFunction" in that it either adds a new declaration of the global
and returns it, or returns the current one -- optionally casting it to the
correct type.
- Use the new getOrInsertGlobal in the stack protector code.
- Use "splitBasicBlock" in the stack protector code.
llvm-svn: 58727
2008-11-04 22:51:24 +00:00
Owen Anderson
2ed3bc9016
First pass at checking for the creation of a new join point when doing pre-alloc splitting. This is not turned on yet.
...
llvm-svn: 58726
2008-11-04 22:22:41 +00:00
Evan Cheng
59112bc108
Actually ARM / Mac OS X does have UINTTOFP_I64_F{64|32} libcalls.
...
llvm-svn: 58725
2008-11-04 22:19:55 +00:00
Bill Wendling
ae168b2c83
Update in response to feedback from Chris:
...
- Use enums instead of magic numbers.
- Rework algorithm to use the bytes size from the target to determine when to
emit stack protectors.
- Get rid of "propolice" in any comments.
- Renamed an option to its expanded form.
- Other miscellanenous changes.
More changes will come after this.
llvm-svn: 58723
2008-11-04 21:53:09 +00:00
Gabor Greif
efaf754a8c
fix two validation errors
...
llvm-svn: 58722
2008-11-04 21:50:59 +00:00
Gabor Greif
bb2aa36f81
fix typos, harmonize formatting
...
llvm-svn: 58721
2008-11-04 21:48:10 +00:00
Tanya Lattner
2c01b34040
Revert 58687. This breaks mingw.
...
llvm-svn: 58719
2008-11-04 21:06:11 +00:00
Dale Johannesen
e51c5296a6
Allow SROA of vectors. Removing this caused a
...
huge performance regression in something we care
about. This may not be final fix.
llvm-svn: 58718
2008-11-04 20:54:03 +00:00
Dale Johannesen
eee3a8a2e0
80 columns
...
llvm-svn: 58717
2008-11-04 20:52:49 +00:00
Evan Cheng
45496b349f
Custom lower bit_convert i64 -> f64 into FMDRR. This is now happening with legalizetypes.
...
llvm-svn: 58714
2008-11-04 19:57:48 +00:00
Tanya Lattner
775d919c49
Add note about cmake. Patch by Oscar Fuentes.
...
llvm-svn: 58712
2008-11-04 18:40:27 +00:00
Dan Gohman
171432bfe1
Give tablegen's Type a destructor, to suppress spurious
...
"Type has virtual functions but non-virtual destructor"
warnings.
llvm-svn: 58710
2008-11-04 18:09:07 +00:00
Duncan Sands
aed2dfe3f6
Fix typo. Patch by nlewycky.
...
llvm-svn: 58709
2008-11-04 18:05:30 +00:00
Evan Cheng
d63b7563b7
Debug output tweak.
...
llvm-svn: 58708
2008-11-04 17:58:53 +00:00
Evan Cheng
088f7c51a4
LDM_RET restores pc, do not set 's' bit which would restore CPSR from SPSR.
...
llvm-svn: 58707
2008-11-04 17:57:07 +00:00
Duncan Sands
58ebf09772
Fix PR3011: LegalizeTypes support for scalarizing
...
SELECT_CC.
llvm-svn: 58706
2008-11-04 17:31:08 +00:00
Dan Gohman
50183113b9
Duncan pointed out that the Extended case in getTypeForMVT could
...
be considerably simplified.
llvm-svn: 58703
2008-11-04 16:19:44 +00:00
Dan Gohman
13237dda2d
Add a return statement to suppress warnings in NDEBUG builds.
...
llvm-svn: 58702
2008-11-04 16:08:57 +00:00
Dan Gohman
2dff90b025
Add some asserts to verify MVT invariant assumptions.
...
llvm-svn: 58701
2008-11-04 16:03:56 +00:00
Nuno Lopes
b16d9bd0c3
regenerate
...
llvm-svn: 58697
2008-11-04 14:43:20 +00:00
Nuno Lopes
064bb29c9d
fix leakage of APFloats in getExistingVal()
...
llvm-svn: 58696
2008-11-04 14:42:19 +00:00
Nuno Lopes
8499bc5e1d
regenerate
...
llvm-svn: 58694
2008-11-04 14:28:33 +00:00