Scott Michel
40f54d2257
CellSPU:
...
- First patch from Nehal Desai, a new contributor at Aerospace. Nehal's patch
fixes sign/zero/any-extending loads for integers and floating point. Example
code, compiled w/o debugging or optimization where he first noticed the bug:
int main(void) {
float a = 99.0;
printf("%d\n", a);
return 0;
}
Verified that this code actually works on a Cell SPU.
Changes by Scott Michel:
- Fix bug in the value type list constructed by SPUISD::LDRESULT to include
both the load result's result and chain, not just the chain alone.
- Simplify LowerLOAD and remove extraneous and unnecessary chains.
- Remove unused SPUISD pseudo instructions.
llvm-svn: 60526
2008-12-04 03:02:42 +00:00
Dan Gohman
44f57df254
Use register names instead of numbers in debug output.
...
llvm-svn: 60525
2008-12-04 02:15:26 +00:00
Dan Gohman
30cad9c192
Make debug output more informative.
...
llvm-svn: 60524
2008-12-04 02:14:57 +00:00
Ted Kremenek
677779ab36
Revamp RegionStoreManager::RemoveDeadBindings. This method now does a complete mark-and-sweep of the store, removing dead regions and recording the set of live and dead symbols appropriately.
...
llvm-svn: 60523
2008-12-04 02:08:27 +00:00
Ted Kremenek
4a3f1efd25
Revise bogus comment I just committed.
...
llvm-svn: 60522
2008-12-04 02:07:20 +00:00
Ted Kremenek
4cef8c2d58
Add comment to test case for documentation.
...
llvm-svn: 60521
2008-12-04 02:06:27 +00:00
Ted Kremenek
8e8cc81aec
Update comment.
...
llvm-svn: 60520
2008-12-04 02:06:04 +00:00
Evan Cheng
011c4fa8a1
Visibility hidden GVs do not require extra load of symbol address from the GOT or non-lazy-ptr.
...
llvm-svn: 60519
2008-12-04 01:56:50 +00:00
Dan Gohman
3aab10b932
Add minimal support for disambiguating memory references. Currently
...
the main thing this covers is spills to distinct spill slots.
llvm-svn: 60517
2008-12-04 01:35:46 +00:00
Zhongxing Xu
96c0fa8b42
Add comments.
...
llvm-svn: 60516
2008-12-04 01:12:41 +00:00
Sebastian Redl
45c2f9d320
Correct CodeGen assumption that LongTy == Int32Ty in a few places. This makes several CodeGenObjC tests pass on 64-bit by fixing assertions. This doesn't mean that the result is actually what the GNU runtime expects, though.
...
llvm-svn: 60515
2008-12-04 00:10:55 +00:00
Chris Lattner
75c2661d24
add a debugging option to help track down j-t problems.
...
llvm-svn: 60514
2008-12-04 00:07:59 +00:00
Sebastian Redl
ba3fdfcbff
Fix some type punning errors in SizeOfAlignOf and Typeid AST nodes. This should satisfy compilers and language lawyers alike.
...
llvm-svn: 60511
2008-12-03 23:17:54 +00:00
Dan Gohman
84efaf6a63
Rewrite the liveness bookkeeping code to fix a bunch of
...
issues with subreg operands and tied operands.
llvm-svn: 60510
2008-12-03 23:07:27 +00:00
Dale Johannesen
941c37c2f6
Make the debugging dump be a full line.
...
llvm-svn: 60509
2008-12-03 22:45:31 +00:00
Dale Johannesen
4e9e6ea604
Remove an unused field.
...
llvm-svn: 60508
2008-12-03 22:43:56 +00:00
Dan Gohman
ee1cd1781a
Have PseudoSourceValue override Value::dump, so that it works
...
on PseudoSourceValue values. This also fixes a FIXME in
lib/VMCode/AsmWriter.cpp.
llvm-svn: 60507
2008-12-03 21:37:21 +00:00
Dale Johannesen
f7a588b909
Fix a misspelled function name.
...
llvm-svn: 60506
2008-12-03 20:56:12 +00:00
Ted Kremenek
5a6ef49e70
Added GDM query functions "contains" for the data types that support the "Contains" method.
...
llvm-svn: 60505
2008-12-03 20:49:14 +00:00
Ted Kremenek
217dc8de69
Added partial specialization of GRStatePartialTrait<T> with T = ImmutableSet<...>.
...
llvm-svn: 60504
2008-12-03 20:48:33 +00:00
Sebastian Redl
faf6808e7a
Overload resolution for the operator new function. Member version is still untested.
...
llvm-svn: 60503
2008-12-03 20:26:15 +00:00
Ted Kremenek
cd7cc1ec0b
Properly "include" abs_path.
...
llvm-svn: 60502
2008-12-03 19:50:37 +00:00
Chris Lattner
dc3f6f2c12
Factor some code into a new FoldSingleEntryPHINodes method.
...
llvm-svn: 60501
2008-12-03 19:44:02 +00:00
Dan Gohman
0c91a5f56c
Fix an inconsistency in a comment.
...
llvm-svn: 60500
2008-12-03 19:38:38 +00:00
Evan Cheng
1339e72d97
Use mmx (punpckldq VR64, (mmx_v_set0)) to clear high 32-bits of a VR64 register.
...
llvm-svn: 60499
2008-12-03 19:38:05 +00:00
Dan Gohman
434a3ca8e9
Don't charge the full latency for anti and output dependencies. This is
...
an area where eventually it would be good to use target-dependent
information.
llvm-svn: 60498
2008-12-03 19:37:34 +00:00
Dale Johannesen
5d84f685a8
A step towards geting linux ppc to work (see PR 3099)
...
llvm-svn: 60497
2008-12-03 19:33:10 +00:00
Dan Gohman
444baea236
When looking for anti-dependences on the critical path, don't bother
...
examining non-anti-dependence edges.
llvm-svn: 60496
2008-12-03 19:32:26 +00:00
Dan Gohman
1a32dda4aa
Add a comment about callee-saved registers.
...
llvm-svn: 60495
2008-12-03 19:30:13 +00:00
Dale Johannesen
d49ceff6ba
Fix a really wrong comment.
...
llvm-svn: 60494
2008-12-03 19:25:46 +00:00
Ted Kremenek
6cd08e42e4
Use abs_path to resolve symbolic links and '..' in report table.
...
llvm-svn: 60493
2008-12-03 19:19:23 +00:00
Chris Lattner
8820ca5560
fix a really incorrect comment.
...
llvm-svn: 60492
2008-12-03 19:18:54 +00:00
Ted Kremenek
eda6c23984
Don't have special treatment from pruning the common suffices of files in /Developer, /usr, etc.
...
llvm-svn: 60491
2008-12-03 19:16:58 +00:00
Ted Kremenek
fff9f4aaaf
BasicConstraintManager:
...
- Fix nonsensical logic in AssumeSymGE. When comparing 'sym >= constant' and the
constant is the maximum integer value, add the constraint that 'sym ==
constant' when the path is deemed feasible. All other cases are feasible.
- Improve AssumeSymGT. When comparing 'sym > constant' and constant is the
maximum integer value we know the path is infeasible.
- Add test case for this enhancement to AssumeSymGT.
llvm-svn: 60490
2008-12-03 19:06:30 +00:00
Ted Kremenek
f935cfe277
BasicConstraintManager:
...
- Fix nonsensical logic in AssumeSymLE. When comparing 'sym <= constant' and the
constant is the minimum integer value, add the constraint that 'sym ==
constant' when the path is deemed feasible. All other cases are feasible.
- Improve AssumeSymLT to address <rdar://problem/6407949>. When comparing
'sym < constant' and constant is the minimum integer value we know the
path is infeasible.
- Add test case for <rdar://problem/6407949>.
llvm-svn: 60489
2008-12-03 18:56:12 +00:00
Dan Gohman
3f86b51333
Split foldMemoryOperand into public non-virtual and protected virtual
...
parts, and add target-independent code to add/preserve
MachineMemOperands.
llvm-svn: 60488
2008-12-03 18:43:12 +00:00
Dan Gohman
69cc2cbbff
Rename isSimpleLoad to canFoldAsLoad, to better reflect its meaning.
...
llvm-svn: 60487
2008-12-03 18:15:48 +00:00
Dan Gohman
78407ac8e5
Extend X86's addFrameReference to add a MachineMemOperand for
...
the frame reference. This will help post-RA scheduling determine
that spills to distinct stack slots are independent.
llvm-svn: 60486
2008-12-03 18:11:40 +00:00
Rafael Espindola
74dc32d422
Fix some tests. The grep for "il" was matching "file".
...
llvm-svn: 60485
2008-12-03 17:14:56 +00:00
Dan Gohman
810daf7e93
Update a comment.
...
llvm-svn: 60484
2008-12-03 17:10:41 +00:00
Sebastian Redl
9c33e96813
Fix typo in index operator overloading.
...
llvm-svn: 60483
2008-12-03 16:32:40 +00:00
Duncan Sands
f52e518d05
Only check that the result of the mapping was not
...
a new node if the node was actually remapped.
llvm-svn: 60482
2008-12-03 12:36:16 +00:00
Rafael Espindola
cda011b5ad
Fix bug 3140.
...
Print a single parameter .file directive if we have an ELF target.
llvm-svn: 60480
2008-12-03 11:01:37 +00:00
Richard Osborne
feece7edab
Add support for ISD::TRAP to the XCore backend
...
llvm-svn: 60479
2008-12-03 10:59:16 +00:00
Evan Cheng
501089f6f4
Refactor code. No functionality change.
...
llvm-svn: 60478
2008-12-03 08:38:43 +00:00
Bill Wendling
f8d1ef9842
CC should only be a ConstantSDNode at this point. Just use 'cast' instead of 'dyn_cast'.
...
llvm-svn: 60477
2008-12-03 08:32:02 +00:00
Evan Cheng
b5a97ff651
Fix test.
...
llvm-svn: 60476
2008-12-03 08:20:45 +00:00
Chris Lattner
350fc5721d
testcase for br undef folding.
...
llvm-svn: 60471
2008-12-03 07:48:27 +00:00
Chris Lattner
595c7279bd
Teach jump threading some more simple tricks:
...
1) have it fold "br undef", which does occur with
surprising frequency as jump threading iterates.
2) teach j-t to delete dead blocks. This removes the successor
edges, reducing the in-edges of other blocks, allowing
recursive simplification.
3) Fold things like:
br COND, BBX, BBY
BBX:
br COND, BBZ, BBW
which also happens because jump threading iterates.
llvm-svn: 60470
2008-12-03 07:48:08 +00:00
Chris Lattner
37e0136fef
third time is the charm.
...
llvm-svn: 60469
2008-12-03 07:45:15 +00:00