Anton Korobeynikov
75a3208bb0
Regenerate
...
llvm-svn: 44546
2007-12-03 21:01:29 +00:00
Anton Korobeynikov
dcec56301a
Fix fallout from my last patch: don't reject varargs functions :)
...
llvm-svn: 44545
2007-12-03 21:00:45 +00:00
Duncan Sands
1e2e4972ff
Rather than having special rules like "intrinsics cannot
...
throw exceptions", just mark intrinsics with the nounwind
attribute. Likewise, mark intrinsics as readnone/readonly
and get rid of special aliasing logic (which didn't use
anything more than this anyway).
llvm-svn: 44544
2007-12-03 20:06:50 +00:00
Chris Lattner
0c41f32943
update file comment.
...
llvm-svn: 44543
2007-12-03 19:43:18 +00:00
Anton Korobeynikov
3f14aef8e9
Regenerate
...
llvm-svn: 44541
2007-12-03 19:17:47 +00:00
Devang Patel
c47f68e747
If ExitValue operand is also defined in Loop header then
...
insert new ExitValue after this operand definition.
This fixes PR1828.
llvm-svn: 44539
2007-12-03 19:17:21 +00:00
Anton Korobeynikov
a19d61c50e
More sanity checks for function types.
...
Thanks goes to PyPy folks for generating broken stuff :)
llvm-svn: 44538
2007-12-03 19:16:54 +00:00
Gordon Henriksen
8ef652160a
Applying Anton's binmode fix to the other ofstream too.
...
llvm-svn: 44535
2007-12-03 14:50:37 +00:00
Anton Korobeynikov
2e3b17227f
Sorry, typo :)
...
llvm-svn: 44534
2007-12-03 14:35:57 +00:00
Anton Korobeynikov
8c54cc8456
Open output file correctly. This is extremely important for
...
windows-based hosts, where files are opened in text mode by default.
llvm-svn: 44533
2007-12-03 14:28:26 +00:00
Evan Cheng
2f539edfe6
Typo
...
llvm-svn: 44532
2007-12-03 10:00:00 +00:00
Evan Cheng
df066bc833
Update kill info for uses of split intervals.
...
llvm-svn: 44531
2007-12-03 09:58:48 +00:00
Anton Korobeynikov
ad4a61ed0b
Provide hook for _alloca to make JITing on Cygwin slightly happier :)
...
llvm-svn: 44528
2007-12-03 05:30:41 +00:00
Evan Cheng
58b387dfb0
Remove redundant foldMemoryOperand variants and other code clean up.
...
llvm-svn: 44517
2007-12-02 08:30:39 +00:00
Duncan Sands
14f11d6836
Integrate the readonly/readnone logic more deeply
...
into alias analysis. This meant updating the API
which now has versions of the getModRefBehavior,
doesNotAccessMemory and onlyReadsMemory methods
which take a callsite parameter. These should be
used unless the callsite is not known, since in
general they can do a better job than the versions
that take a function. Also, users should no longer
call the version of getModRefBehavior that takes
both a function and a callsite. To reduce the
chance of misuse it is now protected.
llvm-svn: 44487
2007-12-01 07:51:45 +00:00
Evan Cheng
7b13aa1c75
Fix a bug where splitting cause some unnecessary spilling.
...
llvm-svn: 44482
2007-12-01 04:42:39 +00:00
Evan Cheng
79e8b92dc3
Allow some reloads to be folded in multi-use cases. Specifically testl r, r -> cmpl [mem], 0.
...
llvm-svn: 44479
2007-12-01 02:07:52 +00:00
Ted Kremenek
74fcbb87af
Fixed subtle bug in Deserializer::JumpTo when jumping when the block-nesting
...
information matching did not exactly match the underlying stream's scoping
information.
llvm-svn: 44470
2007-11-30 22:45:05 +00:00
Evan Cheng
90c548af8e
Do not fold reload into an instruction with multiple uses. It issues one extra load.
...
llvm-svn: 44467
2007-11-30 21:23:43 +00:00
Chris Lattner
c75545d4a8
chain update requests properly.
...
llvm-svn: 44460
2007-11-30 18:52:58 +00:00
Duncan Sands
97ddf89236
Small optimization of parameter attribute lookup.
...
llvm-svn: 44458
2007-11-30 18:20:58 +00:00
Duncan Sands
94d751995e
Add a convenience method for modifying parameter
...
attributes. While there, I noticed that not all
attribute methods returned a pointer-to-constant,
so I fixed that.
llvm-svn: 44457
2007-11-30 18:19:18 +00:00
Duncan Sands
8d9be63cd3
Check that there are not more attributes than
...
function parameters.
llvm-svn: 44452
2007-11-30 15:52:20 +00:00
Devang Patel
47b368da69
Provide a way to update DescGlobals cache directly.
...
llvm-svn: 44446
2007-11-30 00:51:33 +00:00
Evan Cheng
9ddd80f2b9
Do not lose rematerialization info when spilling already split live intervals.
...
llvm-svn: 44443
2007-11-29 23:02:50 +00:00
Owen Anderson
3b893e1f84
Fix a miscompilation in spiff on PPC.
...
llvm-svn: 44437
2007-11-29 18:02:22 +00:00
Evan Cheng
cf224f3721
Fix a major performance issue with splitting. If there is a def (not def/use)
...
in the middle of a split basic block, create a new live interval starting at
the def. This avoid artifically extending the live interval over a number of
cycles where it is dead. e.g.
bb1:
= vr1204 (use / kill) <= new interval starts and ends here.
...
...
vr1204 = (new def) <= start a new interval here.
= vr1204 (use)
llvm-svn: 44436
2007-11-29 10:12:14 +00:00
Evan Cheng
72fe4454e6
Replace the odd kill# hack with something less fragile.
...
llvm-svn: 44434
2007-11-29 09:49:23 +00:00
Duncan Sands
19a1638e99
Small parameter attributes cleanup.
...
llvm-svn: 44433
2007-11-29 08:30:15 +00:00
Evan Cheng
20801d1eb5
Fixed various live interval splitting bugs / compile time issues.
...
llvm-svn: 44428
2007-11-29 01:06:25 +00:00
Evan Cheng
c7959fd80b
Kill info update bug.
...
llvm-svn: 44427
2007-11-29 01:05:47 +00:00
Chris Lattner
906683b821
Work around a GCC bug, producing this code:
...
unsigned char *llvm_cbe_X;
...
llvm_cbe_X = 0; *((void**)&llvm_cbe_X) = __builtin_stack_save();
instead of:
llvm_cbe_X = __builtin_stack_save();
See PR1809 for details.
llvm-svn: 44415
2007-11-28 21:26:17 +00:00
Chris Lattner
e59a7ee26a
Implement ExpandOperationResult for ppc i64 fp->int, which fixes
...
CodeGen/Generic/fp_to_int.ll among others. Its unclear why this
just started failing...
llvm-svn: 44407
2007-11-28 18:44:47 +00:00
Chris Lattner
6f1d4fa570
for consistency, allow a fallthrough if the final check returns null.
...
llvm-svn: 44406
2007-11-28 18:30:18 +00:00
Duncan Sands
1b0feb42e2
Add some convenience methods for querying attributes, and
...
use them.
llvm-svn: 44403
2007-11-28 17:07:01 +00:00
Duncan Sands
8f1098fb97
My compiler complains that "x always evaluates to true"
...
in this call:
Result.IntVal = APInt(80, 2, x);
What is x?
uint16_t x[8];
I deduce that the APInt constructor being used is this one:
APInt(uint32_t numBits, uint64_t val, bool isSigned = false);
rather than this one:
APInt(uint32_t numBits, uint32_t numWords, const uint64_t bigVal[]);
That doesn't seem right! This fix compiles but is otherwise completely
untested.
llvm-svn: 44400
2007-11-28 10:36:19 +00:00
Duncan Sands
2a1fefa2c2
Add missing newlines at EOF.
...
llvm-svn: 44399
2007-11-28 10:13:38 +00:00
Evan Cheng
05d30e7236
Recover compile time regression.
...
llvm-svn: 44386
2007-11-28 01:28:46 +00:00
Owen Anderson
2b9b50b985
Add MachineLoopInfo. This is not yet tested.
...
llvm-svn: 44384
2007-11-27 22:47:08 +00:00
Chris Lattner
706eb604ae
several entries got significantly better, though they still aren't done.
...
llvm-svn: 44382
2007-11-27 22:41:52 +00:00
Chris Lattner
d2ee2dad04
implement a trivial readme entry.
...
llvm-svn: 44380
2007-11-27 22:36:16 +00:00
Chris Lattner
5e0cabc90e
Fix a crash on invalid code due to memcpy lowering.
...
llvm-svn: 44378
2007-11-27 22:14:42 +00:00
Chris Lattner
fc5fe96a52
Make this actually work on systems that support ppc long double.
...
llvm-svn: 44374
2007-11-27 20:45:25 +00:00
Chris Lattner
b2e4222965
Unbreak all of the darwin/ppc32 JIT failures having to do
...
with not being able to find printf.
llvm-svn: 44373
2007-11-27 20:41:32 +00:00
Nate Begeman
4278967588
Support returning non-power-of-2 vectors to unblock some work
...
llvm-svn: 44371
2007-11-27 19:28:48 +00:00
Andrew Lenharth
6e449dc482
something wrong with this opt
...
llvm-svn: 44370
2007-11-27 18:31:30 +00:00
Chris Lattner
0f7f6b0f63
Unbreak backwards compatibility with bytecode format. Regression
...
introduced by this patch:
http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20071126/055824.html
llvm-svn: 44364
2007-11-27 17:48:06 +00:00
Duncan Sands
3602011bec
Fix PR1146: parameter attributes are longer part of
...
the function type, instead they belong to functions
and function calls. This is an updated and slightly
corrected version of Reid Spencer's original patch.
The only known problem is that auto-upgrading of
bitcode files doesn't seem to work properly (see
test/Bitcode/AutoUpgradeIntrinsics.ll). Hopefully
a bitcode guru (who might that be? :) ) will fix it.
llvm-svn: 44359
2007-11-27 13:23:08 +00:00
Chris Lattner
ab5cd0b1c5
err, no really.
...
llvm-svn: 44352
2007-11-27 06:14:32 +00:00
Chris Lattner
a2be558b75
don't depend on ADL.
...
llvm-svn: 44351
2007-11-27 06:14:12 +00:00