- Aug 30, 2011
-
-
Evan Cheng authored
register dependency (rather than glue them together). This is general goodness as it gives scheduler more freedom. However it is motivated by a nasty bug in isel. When a i64 sub is expanded to subc + sube. libcall #1 \ \ subc \ / \ \ / \ \ / libcall #2 sube If the libcalls are not serialized (i.e. both have chains which are dag entry), legalizer can serialize them in arbitrary orders. If it's unlucky, it can force libcall #2 before libcall #1 in the above case. subc | libcall #2 | libcall #1 | sube However since subc and sube are "glued" together, this ends up being a cycle when the scheduler combine subc and sube as a single scheduling unit. The right solution is to fix LegalizeType too chains the libcalls together. However, LegalizeType is not processing nodes in order so that's harder than it should be. For now, the move to physical register dependency will do. rdar://10019576 llvm-svn: 138791
-
Jim Grosbach authored
llvm-svn: 138782
-
Jim Grosbach authored
llvm-svn: 138781
-
Owen Anderson authored
llvm-svn: 138780
-
Jim Grosbach authored
llvm-svn: 138773
-
- Aug 29, 2011
-
-
Eli Friedman authored
Explicitly zero out parts of a vector which are required to be zero by the algorithm in LowerUINT_TO_FP_i32. This only has a substantial effect on the generated code when the input is extracted from a vector register; other ways of loading an i32 do the appropriate zeroing implicitly. Fixes PR10802. llvm-svn: 138768
-
Owen Anderson authored
Apply the same fix for the change in LDR_PRE_IMM/LDRB_PRE_IMM operand encodings to the load-store optimizer that I applied to the instruction selector in r138758. Fixes ary3 from the nightly test suite. llvm-svn: 138766
-
Owen Anderson authored
llvm-svn: 138760
-
Owen Anderson authored
addrmode_imm12 and addrmode2_offset encode their immediate values differently. Update the manual instruction selection code that was encoding them the addrmode2 way even though LDR_PRE_IMM/LDRB_PRE_IMM had switched to addrmode_imm12. Should fix a number of nightly test failures. llvm-svn: 138758
-
Owen Anderson authored
llvm-svn: 138754
-
Eli Friedman authored
llvm-svn: 138751
-
Owen Anderson authored
Update the load-store optimizer for changes to the operands on LDR_PRE_IMM and LDRB_PRE_IMM in r138653. llvm-svn: 138746
-
Bruno Cardoso Lopes authored
llvm-svn: 138744
-
Owen Anderson authored
Add support for parsing #-0 on non-memory-operand immediate values, and add a testcase that necessitates it. llvm-svn: 138739
-
- Aug 28, 2011
-
-
Nicolas Geoffray authored
llvm-svn: 138725
-
Nicolas Geoffray authored
llvm-svn: 138723
-
- Aug 27, 2011
-
-
Benjamin Kramer authored
llvm-svn: 138706
-
Owen Anderson authored
Improve encoding support for BLX with immediat eoperands, and fix a BLX decoding bug this uncovered. llvm-svn: 138675
-
Owen Anderson authored
llvm-svn: 138673
-
Jim Grosbach authored
llvm-svn: 138669
-
- Aug 26, 2011
-
-
Owen Anderson authored
llvm-svn: 138667
-
Jim Grosbach authored
This handles only the handling of the IT instruction itself, not the processing and validation of the instructions in the IT block. That's next, and will include encoding tests for IT itself. llvm-svn: 138665
-
Eli Friedman authored
llvm-svn: 138660
-
Owen Anderson authored
llvm-svn: 138657
-
Owen Anderson authored
invalid-LDR_PRE-arm.txt was already passing, but for the wrong reasons. We were failing to specify enough fixed bits of LDR_PRE/LDRB_PRE, resulting in decoding conflicts. Separate them into immediate vs. register versions, allowing us to specify the necessary fixed bits. This in turn results in the test being decoded properly, and being rejected as UNPREDICTABLE rather than a hard failure. llvm-svn: 138653
-
Owen Anderson authored
llvm-svn: 138642
-
Benjamin Kramer authored
This should fix PR10772. llvm-svn: 138636
-
Owen Anderson authored
Support an extension of ARM asm syntax to allow immediate operands to ADR instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here. llvm-svn: 138635
-
Kalle Raiskila authored
llvm-svn: 138630
-
Owen Anderson authored
Fix PR10755 by checking for invalid predicate codes from UNPREDICTABLE t2IT instructions when decoding their successors. This is the last disassembly crash detected by exhaustive Thumb2 instruction space. Major thanks to Chandler Carruth for making this kind of exhaustive testing possible. llvm-svn: 138625
-
Craig Topper authored
llvm-svn: 138623
-
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
-
Bruno Cardoso Lopes authored
llvm-svn: 138592
-
- Aug 25, 2011
-
-
Nick Lewycky authored
llvm-svn: 138589
-
Bruno Cardoso Lopes authored
llvm-svn: 138588
-
Bruno Cardoso Lopes authored
llvm-svn: 138587
-
Owen Anderson authored
Port over additional encoding tests to decoding tests, and fix an operand ordering bug this exposed. llvm-svn: 138575
-
Andrew Trick authored
rdar://10005094: miscompile of 176.gcc llvm-svn: 138568
-
Andrew Trick authored
llvm-svn: 138566
-
Jim Grosbach authored
llvm-svn: 138562
-