aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2011-08-17Add the support in code-gen for the landingpad instruction lowering.Bill Wendling
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!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137880 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17ARM clean up the imm_sr operand class representation.Jim Grosbach
Represent the operand value as it will be encoded in the instruction. This allows removing the specialized encoder and decoder methods entirely. Add an assembler match class while we're at it to lay groundwork for parsing the thumb shift instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137879 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Disable PRE for landing pads.Bill Wendling
PRE needs the landing pads to have their critical edges split. Doing this for a landing pad is non-trivial. Abandon the attempt to perform PRE when we come across a landing pad. (Reviewed by Owen!) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137876 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Revert patch. Forgot a dependent commit.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137875 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Add the body of 'visitLandingPad'.Bill Wendling
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137873 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Increment the insertion iterator to beyond the landingpad instruction.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137872 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Don't optimize the landing pad exit block.Bill Wendling
One way to exit the loop is through an unwind edge. However, that may involve splitting the critical edge of the landing pad, which is non-trivial. Prevent the transformation from rewriting the landing pad exit loop block. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137871 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Assert that we aren't trying to split the critical edge of a landing pad. DoingBill Wendling
so requires more care than this generic algorithm should handle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137866 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Fix predicate for imm1_32Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137865 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Thumb assembly parsing and encoding for ADR.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137864 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Revert r137655. There is some question about whether the 'landingpad'Bill Wendling
instruction should be marked as potentially reading and/or writing memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137863 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Add a couple of FIXMEs.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137861 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-1780 columns.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137857 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Tidy up.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137856 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Modify for the new EH scheme.Bill Wendling
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'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137855 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Remove unneeded sentence.Bill Wendling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137854 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Revert r137781; I agree with Duncan's comment that the situation in question ↵Eli Friedman
is clearly impossible given the current structure of the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137853 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Add support for half-word unaligned loads and stores.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137848 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Fix test case.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137847 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Remove superficial test.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137846 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Robustify test.Devang Patel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137845 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Static fields require an out-of-line definition. Fix DynamicLibrary for real.Jordy Rose
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137844 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17...and make sure DynamicLibrary builds by removing "const" from the Invalid ↵Jordy Rose
placeholder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137843 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Don't use NULL to represent an invalid library; Cygwin uses this for ↵Jordy Rose
RTLD_DEFAULT. Caught by Takumi. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137841 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Start building a Thumb1 decoding test file based on the Thumb1 ↵Owen Anderson
parsing/encoding test file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137840 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Be more careful in the Thumb decoder hooks to avoid walking off the end of ↵Owen Anderson
the OpInfo array. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137838 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Silly mistake from r137777; restore significant isStructTy() checks. While ↵Eli Friedman
here, be a bit more defensive with unknown instructions. Fixes PR10687. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137836 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Thumb assembly parsing and encoding for ADC(register) instruction.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137833 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Add missing '@' delimiter.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137832 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Move pattern matching for EXT and INS to post-legalization DAGCombine per ↵Akira Hatanaka
Bruno's comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137831 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Allow the MCDisassembler to return a "soft fail" status code, indicating an ↵Owen Anderson
instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment. Patch by James Molloy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137830 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Introduce matching patterns for vbroadcast AVX instruction. The idea is toBruno Cardoso Lopes
match splats in the form (splat (scalar_to_vector (load ...))) whenever the load can be folded. All the logic and instruction emission is working but because of PR8156, there are no ways to match loads, cause they can never be folded for splats. Thus, the tests are XFAILed, but I've tested and exercised all the logic using a relaxed version for checking the foldable loads, as if the bug was already fixed. This should work out of the box once PR8156 gets fixed since MayFoldLoad will work as expected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137810 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Update test to not use the scalar type to splat from a loadBruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137809 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Update comments about vector splat handling in x86Bruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137808 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Now that we have a canonical way to handle 256-bit splats:Bruno Cardoso Lopes
vinsertf128 $1 + vpermilps $0, remove the old code that used to first do the splat in a 128-bit vector and then insert it into a larger one. This is better because the handling code gets simpler and also makes a better room for the upcoming vbroadcast! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137807 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Update uwtable vim color!Bruno Cardoso Lopes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137806 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Add support for ext and ins.Akira Hatanaka
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137804 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17CMake: [MSVC] Suppress C4551 'function call missing argument list'.NAKAMURA Takumi
(void)static_func; it is used as idiom in llvm source tree to suppress "Unused static function" warnings. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137800 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Unbork Windows build. Thanks, Francois.Jordy Rose
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137798 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-17Use DynamicLibrary instances as a way to get symbols from a specific ↵Jordy Rose
library. Preparation for upcoming (preliminary) support for plugins for the static analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137791 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Thumb ADD(immediate) parsing support.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137788 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Separate out Thumb1 instructions that need an S bit operand from those that ↵Owen Anderson
do not, for the purposes of decoding them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137787 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16An additional atomic test; related to r137662.Eli Friedman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137786 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Extend the undef ^ undef idiom once more. No testcase: I can't figure out ↵Eli Friedman
how to actually trigger the codepath in question at the moment, but it might get exposed in the future. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137781 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Thumb parsing diagnostics for low-reg requirements on ADD and MOV.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137779 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Until now all debug info MDNodes referred to a root MDNode, a compile unit. ↵Devang Patel
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137778 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16A bunch of misc fixes to SCCPSolver::ResolvedUndefsIn, including a fix to stopEli Friedman
making random bad assumptions about instructions which are not explicitly listed. Includes fix for rdar://9956541, a version of "undef ^ undef should return 0 because it's easier than arguing with users". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137777 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Remove tests that have been obsoleted or migrated to clang/optimizer tests.Eric Christopher
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137775 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Add missing exit for 'case'.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137774 91177308-0d34-0410-b5e6-96231b3b80d8
2011-08-16Thumb assembly parsing and encoding for ADD(register) instruction.Jim Grosbach
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@137759 91177308-0d34-0410-b5e6-96231b3b80d8