- Aug 26, 2011
-
-
Bill Wendling authored
llvm-svn: 138664
-
Bill Wendling authored
split it in the other place where we're splitting critical edges. llvm-svn: 138658
-
Eli Friedman authored
I don't really like the patterns, but I'm having trouble coming up with a better way to handle them. I plan on making other targets use the same legalization ARM-without-memory-barriers is using... it's not especially efficient, but if anyone cares, it's not that hard to fix for a given target if there's some better lowering. llvm-svn: 138621
-
Bill Wendling authored
scheme, return 'true' so that it doesn't try to run the old EH scheme's fixup on the new code. llvm-svn: 138605
-
- Aug 24, 2011
-
-
Eli Friedman authored
llvm-svn: 138478
-
Evan Cheng authored
These are strictly utilities for registering targets and components. llvm-svn: 138450
-
Jim Grosbach authored
llvm-svn: 138437
-
Bill Wendling authored
A value of -1 at a call site tells the personality function that this call isn't handled by the current function. Since the ResumeInsts are converted to calls to _Unwind_SjLj_Resume, add a (volatile) store of -1 to its 'call site'. llvm-svn: 138416
-
Bill Wendling authored
This is not necessarily the first or dominating use of the EH values. The IR breaks if it's not. So replace the specific value in the instruction with the new value. llvm-svn: 138406
-
Bill Wendling authored
The invoke could be at the end of the entry block. If it's the only one, then we won't process all of the landingpad instructions correctly. This code is currently ugly, but should be made much nicer once the new EH switch is thrown. llvm-svn: 138397
-
- Aug 23, 2011
-
-
Bill Wendling authored
llvm-svn: 138387
-
Evan Cheng authored
llvm-svn: 138356
-
Bill Wendling authored
value, we insert a load of the exception object and selector object from memory, which is where it actually resides. If it's used by a PHI node, we follow that to where it is being used. Eventually, all landingpad instructions should have no uses. Any PHI nodes that were associated with those landingpads should be removed. llvm-svn: 138302
-
Evan Cheng authored
Follow up to Jim's r138278. This fixes commuteInstruction so it handles two-address instructions correctly. I'll let Jim add a test case. :-) llvm-svn: 138289
-
- Aug 22, 2011
-
-
Bill Wendling authored
llvm-svn: 138256
-
Nick Lewycky authored
llvm-svn: 138252
-
- Aug 20, 2011
-
-
Devang Patel authored
Do not use named md nodes to track variables that are completely optimized. This does not scale while doing LTO with debug info. New approach is to include list of variables in the subprogram info directly. llvm-svn: 138145
-
Benjamin Kramer authored
llvm-svn: 138130
-
- Aug 19, 2011
-
-
Nick Lewycky authored
llvm-svn: 138091
-
Nick Lewycky authored
the intent seems to be to terminate even in Release builds, just use abort() directly. If program flow ever reaches a __builtin_unreachable (which llvm_unreachable is #define'd to on newer GCCs) then the program is undefined. llvm-svn: 138068
-
Jakob Stoklund Olesen authored
This is useful for unit tests. llvm-svn: 138028
-
Benjamin Kramer authored
llvm-svn: 138025
-
Jakob Stoklund Olesen authored
Normally, a partial register def is treated as reading the super-register unless it also defines the full register like this: %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def> This patch also uses the <undef> flag on partial defs to recognize non-reading operands: %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses would treat a coalesced copy as still reading the register, extending the live range artificially. My test case only works when I disable DCE so a dead copy is left for RegisterCoalescer, so I am not including it. <rdar://problem/9967101> llvm-svn: 138018
-
Renato Golin authored
add the comments of each declaration follow it, making it easier to read and compare to GCC's result. llvm-svn: 138009
-
Devang Patel authored
llvm-svn: 138006
-
Devang Patel authored
llvm-svn: 137998
-
Ivan Krasin authored
llvm-svn: 137993
-
- Aug 17, 2011
-
-
Bill Wendling authored
The landingpad instruction is lowered into the EXCEPTIONADDR and EHSELECTION SDNodes. The information from the landingpad instruction is harvested by the 'AddLandingPadInfo' function. The new EH uses the current EH scheme in the back-end. This will change once we switch over to the new scheme. (Reviewed by Jakob!) llvm-svn: 137880
-
Bill Wendling authored
llvm-svn: 137875
-
Bill Wendling authored
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
-
Bill Wendling authored
Things are much saner now. We no longer need to modify the laning pads, because of the invariants we impose upon them. The only thing DwarfEHPrepare needs to do is convert the 'resume' instruction into a call to '_Unwind_Resume'. llvm-svn: 137855
-
Devang Patel authored
Until now all debug info MDNodes referred to a root MDNode, a compile unit. This simplified handling of these needs in dwarf writer. However, one side effect of this is that during link time optimization all these MDNodes are _not_ uniqued. In other words there will be N number of MDNodes describing "int", "char" and all other types, which would suddenly grow when each object file starts using libraries like STL. MDNodes graph structure such that compiler unit keeps track of important MDNodes and update dwarf writer to process mdnodes top-down instead of bottom up. llvm-svn: 137778
-
- Aug 16, 2011
-
-
Jim Grosbach authored
The argument is unused, and is a layering violation in any case. llvm-svn: 137735
-
Devang Patel authored
llvm-svn: 137728
-
Nadav Rotem authored
llvm-svn: 137719
-
Devang Patel authored
llvm-svn: 137689
-
Devang Patel authored
llvm-svn: 137683
-
Devang Patel authored
llvm-svn: 137668
-
Devang Patel authored
llvm-svn: 137663
-
- Aug 15, 2011
-
-
Devang Patel authored
There is no need to maintain a set to keep track of variables that use location expressions. In such cases, AT_location attribute's value will be a label. llvm-svn: 137659
-