- Aug 16, 2013
-
-
Richard Mitton authored
llvm-svn: 188568
-
Daniel Dunbar authored
llvm-svn: 188567
-
Aaron Ballman authored
llvm-svn: 188566
-
Aaron Ballman authored
llvm-svn: 188565
-
Stephen Lin authored
llvm-svn: 188564
-
Jim Grosbach authored
llvm-svn: 188563
-
Michel Danzer authored
Fixes two recent piglit regressions with radeonsi. Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 188559
-
Michel Danzer authored
The logic in SIInsertWaits::getHwCounts() only really made sense for SMRD instructions, and trying to shoehorn it into handling DS_WRITE_B32 caused it to corrupt the encoding of that by clobbering the first operand with the second one. Undo that damage and only apply the SMRD logic to that. Fixes some derivates related piglit regressions with radeonsi. Reviewed-by:
Tom Stellard <thomas.stellard@amd.com> llvm-svn: 188558
-
Daniel Sanders authored
llvm-svn: 188557
-
Daniel Sanders authored
llvm-svn: 188556
-
Benjamin Kramer authored
llvm-svn: 188555
-
Aaron Ballman authored
llvm-svn: 188554
-
Benjamin Kramer authored
This unbreaks PIC with fast isel on ELF targets (PR16717). The output matches what GCC and SDag do for PIC but may not cover all of the many flavors of PIC that exist. llvm-svn: 188551
-
Mihai Popa authored
Thumb2 literal loads use an offset encoding which allows for negative zero. This fixes parsing and encoding so that #-0 is correctly processed. The parser represents #-0 as INT32_MIN. llvm-svn: 188549
-
Mihai Popa authored
There are many Thumb instructions which take 12-bit immediates encoded in a special 8-byte value + 4-byte rotator form. Not all numbers are represented, and it's legal to transform an assembly instruction to be able to encode the immediate. For example: AND and BIC are complementary instructions; one can switch the AND to a BIC as long as the immediate is complemented. The intent is to switch one instruction into its complementary one when the immediate cannot be encoded in the form requested in the original assembly and when the complementary immediate is encodable. The patch addresses two issues: 1. definition of t2SOImmNot immediate - it has to check that the orignal value is not encoded naturally 2. t2AND and t2BIC instruction aliases which should use the Thumb2 SOImm operand rather than the ARM one. llvm-svn: 188548
-
Richard Sandiford authored
It would also make sense to use it for memchr; I'm working on that now. llvm-svn: 188547
-
Richard Sandiford authored
llvm-svn: 188546
-
Richard Sandiford authored
llvm-svn: 188544
-
Richard Sandiford authored
Generalize r188163 to cope with return types other than MVT::i32, just as the existing visitMemCmpCall code did. I've split this out into a subroutine so that it can be used for other upcoming patches. I also noticed that I'd used the wrong API to record the out chain. It's a load that uses DAG.getRoot() rather than getRoot(), so the out chain should go on PendingLoads. I don't have a testcase for that because we don't do any interesting scheduling on z yet. llvm-svn: 188540
-
Richard Sandiford authored
r188163 used CLC to implement memcmp. Code that compares the result directly against zero can test the CC value produced by CLC, but code that needs an integer result must use IPM. The sequence I'd used was: ipm <reg> sll <reg>, 2 sra <reg>, 30 but I'd forgotten that this inverts the order, so that CC==1 ("less") becomes an integer greater than zero, and CC==2 ("greater") becomes an integer less than zero. This sequence should only be used if the CLC arguments are reversed to compensate. The problem then is that the branch condition must also be reversed when testing the CLC result directly. Rather than do that, I went for a different sequence that works with the natural CLC order: ipm <reg> srl <reg>, 28 rll <reg>, <reg>, 31 One advantage of this is that it doesn't clobber CC. A disadvantage is that any sign extension to 64 bits must be done separately, rather than being folded into the shifts. llvm-svn: 188538
-
Vladimir Medic authored
llvm-svn: 188537
-
Craig Topper authored
llvm-svn: 188534
-
Aaron Ballman authored
Re-disabling C4291 warnings for MSVC because AttributeList.h requires it. This was accidentally removed in r187279. llvm-svn: 188530
-
Matt Arsenault authored
llvm-svn: 188529
-
Aaron Ballman authored
Calling the base class constructor from the derived class' initializer list. This matches DenseMap's behavior, and silences some warnings. llvm-svn: 188528
-
Daniel Dunbar authored
- Benjamin fixed the emission of this file in r179937, but it still lives on a few buildbots. We should probably clean up the build dirs once in a while, eh? llvm-svn: 188527
-
Daniel Dunbar authored
llvm-svn: 188526
-
Aaron Ballman authored
llvm-svn: 188525
-
Aaron Ballman authored
llvm-svn: 188524
-
Tom Stellard authored
This reverts commit a6a39ced095c2f453624ce62c4aead25db41a18f. This is the wrong version of this fix. llvm-svn: 188523
-
Tom Stellard authored
The SIInsertWaits pass was overwriting the first operand (gds bit) of DS_WRITE_B32 with the second operand (value to write). This meant that any time the value to write was stored in an odd number VGPR, the gds bit would be set causing the instruction to write to GDS instead of LDS. llvm-svn: 188522
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188521
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188520
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188519
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188518
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188517
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188516
-
Tom Stellard authored
Tested-by:
Aaron Watry <awatry@gmail.com> llvm-svn: 188515
-
Daniel Dunbar authored
- Instead of setting the suffixes in a bunch of places, just set one master list in the top-level config. We now only modify the suffix list in a few suites that have one particular unique suffix (.ml, .mc, .yaml, .td, .py). - Aside from removing the need for a bunch of lit.local.cfg files, this enables 4 tests that were inadvertently being skipped (one in Transforms/BranchFolding, a .s file each in DebugInfo/AArch64 and CodeGen/PowerPC, and one in CodeGen/SI which is now failing and has been XFAILED). - This commit also fixes a bunch of config files to use config.root instead of older copy-pasted code. llvm-svn: 188513
-
Jim Grosbach authored
When both constants are positive or both constants are negative, InstCombine already simplifies comparisons like this, but when it's exactly zero and -1, the operand sorting ends up reversed and the pattern fails to match. Handle that special case. Follow up for rdar://14689217 llvm-svn: 188512
-