- Feb 17, 2012
-
-
Jia Liu authored
llvm-svn: 150775
-
Chad Rosier authored
entend flag. llvm-svn: 150774
-
Lang Hames authored
Re-enable 150652 and 150654 - Make FPSCR non-reserved, and make MachineCSE bail on reserved registers. This *should* be safe as of r150786. llvm-svn: 150769
-
- Feb 16, 2012
-
-
Akira Hatanaka authored
llvm-svn: 150739
-
Chad Rosier authored
llvm-svn: 150737
-
Jakob Stoklund Olesen authored
Call clobbers are now represented with register mask operands. The regmask can easily represent the fact that xmm6 is call-preserved while ymm6 isn't. This is automatically computed by TableGen from the CalleeSavedRegs containing xmm6. llvm-svn: 150709
-
Jakob Stoklund Olesen authored
The different calling conventions and call-preserved registers are represented with regmask operands that are added dynamically. llvm-svn: 150708
-
Akira Hatanaka authored
llvm-svn: 150706
-
Lang Hames authored
llvm-svn: 150655
-
Lang Hames authored
llvm-svn: 150654
-
Jakob Stoklund Olesen authored
Call instructions no longer have a list of 43 call-clobbered registers. Instead, they get a single register mask operand with a bit vector of call-preserved registers. This saves a lot of memory, 42 x 32 bytes = 1344 bytes per call instruction, and it speeds up building call instructions because those 43 imp-def operands no longer need to be added to use-def lists. (And removed and shifted and re-added for every explicit call operand). Passes like LiveVariables, LiveIntervals, RAGreedy, PEI, and BranchFolding are significantly faster because they can deal with call clobbers in bulk. Overall, clang -O2 is between 0% and 8% faster, uniformly distributed depending on call density in the compiled code. Debug builds using clang -O0 are 0% - 3% faster. I have verified that this patch doesn't change the assembly generated for the LLVM nightly test suite when building with -disable-copyprop and -disable-branch-fold. Branch folding behaves slightly differently in a few cases because call instructions have different hash values now. Copy propagation flushes its data structures when it crosses a register mask operand. This causes it to leave a few dead copies behind, on the order of 20 instruction across the entire nightly test suite, including SPEC. Fixing this properly would require the pass to use different data structures. llvm-svn: 150638
-
- Feb 15, 2012
-
-
Sirish Pande authored
llvm-svn: 150606
-
Eric Christopher authored
This reverts commit 1656806a944bbd23e98c6e578810fe02495ab741. llvm-svn: 150605
-
Eric Christopher authored
as it's breaking the build. This reverts commit 11241abca5e2a313412fed594bb9d9fa2a2057fb. llvm-svn: 150604
-
Sirish Pande authored
llvm-svn: 150603
-
Sirish Pande authored
llvm-svn: 150601
-
Chad Rosier authored
llvm-svn: 150591
-
Bill Wendling authored
The c'tor list is stored as a list of 'void ()*'s, so all of the functions are bitcast to that. However, the dyn_cast doesn't automagically look through bitcasts. Do that for it. <rdar://problem/10813350> llvm-svn: 150572
-
Andrew Trick authored
Added TargetPassConfig::disablePass/substitutePass as a general mechanism to override specific passes. llvm-svn: 150562
-
Chad Rosier authored
llvm-svn: 150538
-
Pete Cooper authored
Stop custom lowering forr x86 DEC64m from happening if the load in the lowered sequence has more than 1 user llvm-svn: 150537
-
Chad Rosier authored
llvm-svn: 150536
-
- Feb 14, 2012
-
-
Chad Rosier authored
llvm-svn: 150520
-
Craig Topper authored
Move old movl vector_shuffle patterns. Not needed anymore since vector_shuffles shouldn't reach isel. llvm-svn: 150462
-
Lang Hames authored
llvm-svn: 150447
-
Lang Hames authored
llvm-svn: 150444
-
Bill Wendling authored
marking them as "live-in" into a BB ruins some invariants that the back-end tries to maintain. llvm-svn: 150437
-
Lang Hames authored
llvm-svn: 150433
-
- Feb 13, 2012
-
-
Craig Topper authored
llvm-svn: 150365
-
Ahmed Charles authored
- Use unsigned literals when the desired result is unsigned. This mostly allows unsigned/signed mismatch warnings to be less noisy even if they aren't on by default. - Remove misplaced llvm_unreachable. - Add static to a declaration of a function on MSVC x86 only. - Change some instances of calling a static function through a variable to simply calling that function while removing the unused variable. llvm-svn: 150364
-
Craig Topper authored
Remove more vector_shuffle patterns for unpack. These should be target specific nodes when they get to isel. llvm-svn: 150363
-
Craig Topper authored
llvm-svn: 150362
-
Craig Topper authored
Update CanXFormVExtractWithShuffleIntoLoad to ensure bitcasts of loads only have one use. Matches DAGCombiner and prevents vector_shuffles from reaching isel. llvm-svn: 150360
-
NAKAMURA Takumi authored
It caused 3 failures on pre-penryn and non-x86(generic) hosts. llvm-svn: 150357
-
Pete Cooper authored
If the DEC node had more than one user, it was doing this lowering but leaving the original DEC node around and so decrementing twice. Fixes PR11964. llvm-svn: 150356
-
- Feb 12, 2012
-
-
Craig Topper authored
llvm-svn: 150328
-
Nick Lewycky authored
to TargetLibraryInfo and use one of them in GlobalOpt. llvm-svn: 150323
-
Craig Topper authored
llvm-svn: 150321
-
Craig Topper authored
llvm-svn: 150314
-
- Feb 11, 2012
-
-
Anton Korobeynikov authored
Patch by Kai Nacke! llvm-svn: 150307
-