#
2a521948 |
| 17-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the body of 'visitLandingPad'.
This generates the SDNodes for the new exception handling scheme. It takes the two values coming from the landingpad instruction and assigns them to the EXCEPTIONA
Add the body of 'visitLandingPad'.
This generates the SDNodes for the new exception handling scheme. It takes the two values coming from the landingpad instruction and assigns them to the EXCEPTIONADDR and EHSELECTION nodes.
llvm-svn: 137873
show more ...
|
#
fae14758 |
| 12-Aug-2011 |
Bill Wendling <isanbard@gmail.com> |
Initial commit of the 'landingpad' instruction.
This implements the 'landingpad' instruction. It's used to indicate that a basic block is a landing pad. There are several restrictions on its use (se
Initial commit of the 'landingpad' instruction.
This implements the 'landingpad' instruction. It's used to indicate that a basic block is a landing pad. There are several restrictions on its use (see LangRef.html for more detail). These restrictions allow the exception handling code to gather the information it needs in a much more sane way.
This patch has the definition, implementation, C interface, parsing, and bitcode support in it.
llvm-svn: 137501
show more ...
|
#
aab841cf |
| 03-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Do not drop undef debug values. These are used as range termination marker by live debug variable pass.
llvm-svn: 136834
|
#
30a49e93 |
| 03-Aug-2011 |
Eli Friedman <eli.friedman@gmail.com> |
New approach to r136737: insert the necessary fences for atomic ops in platform-independent code, since a bunch of platforms (ARM, Mips, PPC, Alpha are the relevant targets here) need to do essential
New approach to r136737: insert the necessary fences for atomic ops in platform-independent code, since a bunch of platforms (ARM, Mips, PPC, Alpha are the relevant targets here) need to do essentially the same thing.
I think this completes the basic CodeGen for atomicrmw and cmpxchg.
llvm-svn: 136813
show more ...
|
#
f891bf8b |
| 31-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Add the 'resume' instruction for the new EH rewrite.
This adds the 'resume' instruction class, IR parsing, and bitcode reading and writing. The 'resume' instruction resumes propagation of an existin
Add the 'resume' instruction for the new EH rewrite.
This adds the 'resume' instruction class, IR parsing, and bitcode reading and writing. The 'resume' instruction resumes propagation of an existing (in-flight) exception whose unwinding was interrupted with a 'landingpad' instruction (to be added later).
llvm-svn: 136589
show more ...
|
#
ad088e67 |
| 30-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338, r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444, r136445, r136446, r136253 pending revie
Revert r136253, r136263, r136269, r136313, r136325, r136326, r136329, r136338, r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444, r136445, r136446, r136253 pending review.
llvm-svn: 136556
show more ...
|
#
0480a8fb |
| 29-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Do not lose branch weights when lowering SwitchInst.
llvm-svn: 136529
|
#
539db989 |
| 29-Jul-2011 |
Jakub Staszak <jstaszak@apple.com> |
Remove unneeded const_cast.
llvm-svn: 136506
|
#
adec587d |
| 29-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be working on x86 (at least for trivial testcases); other architectures will need more work so that they actually emit the a
Misc optimizer+codegen work for 'cmpxchg' and 'atomicrmw'. They appear to be working on x86 (at least for trivial testcases); other architectures will need more work so that they actually emit the appropriate instructions for orderings stricter than 'monotonic'. (As far as I can tell, the ARM, PPC, Mips, and Alpha backends need such changes.)
llvm-svn: 136457
show more ...
|
#
7eadbeaf |
| 29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Use the pointer type size.
With this, we can now compile a simple EH program.
llvm-svn: 136446
|
#
6a8cac73 |
| 29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
And now something that compiles...
llvm-svn: 136445
|
#
4b0a365b |
| 29-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Make sure to sext or trunc the result from the register.
llvm-svn: 136444
|
#
3cc87682 |
| 28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Visit the landingpad instruction.
This generates the correct SDNodes for the landingpad instruction. It makes an assumption that the result of the landingpad instruction has at least two values. And
Visit the landingpad instruction.
This generates the correct SDNodes for the landingpad instruction. It makes an assumption that the result of the landingpad instruction has at least two values. And that the first value is a pointer to the exception object and the second value is the "selector."
llvm-svn: 136430
show more ...
|
#
c9a551eb |
| 28-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
LangRef and basic memory-representation/reading/writing for 'cmpxchg' and 'atomicrmw' instructions, which allow representing all the current atomic rmw intrinsics.
The allowed operands for these ins
LangRef and basic memory-representation/reading/writing for 'cmpxchg' and 'atomicrmw' instructions, which allow representing all the current atomic rmw intrinsics.
The allowed operands for these instructions are heavily restricted at the moment; we can probably loosen it a bit, but supporting general first-class types (where it makes sense) might get a bit complicated, given how SelectionDAG works.
As an initial cut, these operations do not support specifying an alignment, but it would be possible to add if we think it's useful. Specifying an alignment lower than the natural alignment would be essentially impossible to support on anything other than x86, but specifying a greater alignment would be possible. I can't think of any useful optimizations which would use that information, but maybe someone else has ideas.
Optimizer/codegen support coming soon.
llvm-svn: 136404
show more ...
|
#
4f027233 |
| 28-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
The personality function should be a Function* and not just a Value*.
llvm-svn: 136392
|
#
26a48485 |
| 27-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Code generation for 'fence' instruction.
llvm-svn: 136283
|
#
6c923bb8 |
| 27-Jul-2011 |
Bill Wendling <isanbard@gmail.com> |
Merge the contents from exception-handling-rewrite to the mainline.
This adds the new instructions 'landingpad' and 'resume'.
llvm-svn: 136253
|
#
6381c010 |
| 27-Jul-2011 |
Jeffrey Yasskin <jyasskin@google.com> |
Explicitly cast narrowing conversions inside {}s that will become errors in C++0x.
llvm-svn: 136211
|
#
fee02c6c |
| 25-Jul-2011 |
Eli Friedman <eli.friedman@gmail.com> |
Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier.
This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen supp
Initial implementation of 'fence' instruction, the new C++0x-style replacement for llvm.memory.barrier.
This is just a LangRef entry and reading/writing/memory representation; optimizer+codegen support coming soon.
llvm-svn: 136009
show more ...
|
#
229907cd |
| 18-Jul-2011 |
Chris Lattner <sabre@nondot.org> |
land David Blaikie's patch to de-constify Type, with a few tweaks.
llvm-svn: 135375
|
#
92464be2 |
| 14-Jul-2011 |
Eric Christopher <echristo@apple.com> |
Check register class matching instead of width of type matching when determining validity of matching constraint. Allow i1 types access to the GR8 reg class for x86.
Fixes PR10352 and rdar://9777108
Check register class matching instead of width of type matching when determining validity of matching constraint. Allow i1 types access to the GR8 reg class for x86.
Fixes PR10352 and rdar://9777108
llvm-svn: 135180
show more ...
|
#
15cd5a3f |
| 14-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Don't emit a bit test if there is only one case the test can yield false. A simple SETNE is sufficient.
llvm-svn: 135126
|
#
57aa6367 |
| 13-Jul-2011 |
Jay Foad <jay.foad@gmail.com> |
Convert InsertValueInst and ExtractValueInst APIs to use ArrayRef.
llvm-svn: 135040
|
#
f03fa189 |
| 08-Jul-2011 |
Cameron Zwarich <zwarich@apple.com> |
Add an intrinsic and codegen support for fused multiply-accumulate. The intent is to use this for architectures that have a native FMA instruction.
llvm-svn: 134742
|
#
2bb8b26a |
| 08-Jul-2011 |
Benjamin Kramer <benny.kra@googlemail.com> |
Apparently we can't expect a BinaryOperator here.
Should fix llvm-gcc selfhost.
llvm-svn: 134699
|