- Jul 04, 2012
-
-
Jakob Stoklund Olesen authored
This pass performs if-conversion on SSA form machine code by speculatively executing both sides of the branch and using a cmov instruction to select the result. This can help lower the number of branch mispredictions on architectures like x86 that don't have predicable instructions. The current implementation is very aggressive, and causes regressions on mosts tests. It needs good heuristics that have yet to be implemented. llvm-svn: 159694
-
- Jul 03, 2012
-
-
Nuno Lopes authored
Thanks Duncan for the idea llvm-svn: 159687
-
Bill Wendling authored
These give quite a bit more information about the DebugInfo and makes it more readable. llvm-svn: 159680
-
Nuno Lopes authored
(LLVM optimizers cannot do this optimization by themselves) llvm-svn: 159668
-
Nuno Lopes authored
Unfortunately this change requires the cache map to hold WeakVHs instead llvm-svn: 159667
-
Nuno Lopes authored
llvm-svn: 159666
-
Stepan Dyatkovskiy authored
IntegersSubsetMapping - Replaced type of Items field from std::list with std::map. In neares future I'll test it with DenseMap and do the correspond replacement if possible. llvm-svn: 159659
-
Craig Topper authored
llvm-svn: 159647
-
Craig Topper authored
llvm-svn: 159646
-
NAKAMURA Takumi authored
llvm-svn: 159645
-
Craig Topper authored
Add aliases for pblendvb, blendvpd, and blendvps instructions with the implicit xmm0 operand specified. Fixes PR13252. llvm-svn: 159644
-
NAKAMURA Takumi authored
It fixes failure in test/MC/MachO/gen-dwarf.s on Win32 w/o bash. llvm-svn: 159640
-
Jack Carter authored
inlineasm-cnstrnt-bad-r-1.ll is NOT supposed to fail, so it was removed. This resulted in the removal of a negative test (inlineasm-cnstrnt-bad-r-1.ll) llvm-svn: 159625
-
Eric Christopher authored
it appears to be breaking the bots. This reverts commit 1b055ce320fa13f6f1ac81670d11b45e01f79876. llvm-svn: 159619
-
Eric Christopher authored
This reverts commit b2833d9dcba88c6f0520cad760619200adc0442c. llvm-svn: 159618
-
Chandler Carruth authored
It appears to have caught a use-after-free introduced as by r159567 and/or friends which call 'addPass' from many more places. The bug in 'addPass' doesn't appear to be new, and was spotted by inspection when ASan shown a bright light of a stacktrace at these functions. Hopefully this will fix the ASan failure -- I have no test case other than running an ASan-built clang over the test suite. llvm-svn: 159614
-
Evan Cheng authored
llvm-svn: 159611
-
Jack Carter authored
inlineasm-cnstrnt-bad-r-1.ll is NOT supposed to fail, so it was removed. This resulted in the removal of a negative test (inlineasm-cnstrnt-bad-r-1.ll) llvm-svn: 159610
-
- Jul 02, 2012
-
-
Andrew Trick authored
llvm-svn: 159599
-
Eric Christopher authored
Part of rdar://6880388 and rdar://11766377 llvm-svn: 159590
-
Jack Carter authored
Contributer: Sasa Stankovic llvm-svn: 159574
-
Bob Wilson authored
This is still a work in progress but I believe it is currently good enough to fix PR13122 "Need unit test driver for codegen IR passes". For example, you can run llc with -stop-after=loop-reduce to have it dump out the IR after running LSR. Serializing machine-level IR is not yet supported but we have some patches in progress for that. The plan is to serialize the IR to a YAML file, containing separate sections for the LLVM IR, machine-level IR, and whatever other info is needed. Chad suggested that we stash the stop-after pass in the YAML file and use that instead of the start-after option to figure out where to restart the compilation. I think that's a great idea, but since it's not implemented yet I put the -start-after option into this patch for testing purposes. llvm-svn: 159570
-
Bob Wilson authored
llvm-svn: 159569
-
Bob Wilson authored
This makes it possible to just use a zero value to represent "no pass", so the phony NoPassID global variable is no longer needed. llvm-svn: 159568
-
Bob Wilson authored
This is a preliminary step toward having TargetPassConfig be able to start and stop the compilation at specified passes for unit testing and debugging. No functionality change. llvm-svn: 159567
-
Andrew Trick authored
My last checkin was apparently not the branch I intended. It was missing one change (added by chandlerc), and contained a spurious change. llvm-svn: 159548
-
Duncan Sands authored
llvm-svn: 159546
-
Manman Ren authored
register does not have multiple definitions. Modified TwoAddressInstructionPass to use getUniqueVRegDef instead of getVRegDef. llvm-svn: 159545
-
Andrew Trick authored
Reapplies r159406 with minor cleanup. The regressions appear to have been spurious. llvm-svn: 159541
-
Bob Wilson authored
Patch by Matt Fischer! llvm-svn: 159538
-
Nuno Lopes authored
llvm-svn: 159534
-
Stepan Dyatkovskiy authored
- Changed isSingleNumber method behaviour. Now this flag is calculated on demand. IntegersSubsetMapping - Optimized diff operation. - Replaced type of Items field from std::list with std::map. - Added new methods: bool isOverlapped(self &RHS) void add(self& RHS, SuccessorClass *S) void detachCase(self& NewMapping, SuccessorClass *Succ) void removeCase(SuccessorClass *Succ) SuccessorClass *findSuccessor(const IntTy& Val) const IntTy* getCaseSingleNumber(SuccessorClass *Succ) IntegersSubsetTest - DiffTest: Added checks for successors. SimplifyCFG Updated SwitchInst usage (now it is case-ragnes compatible) for - SimplifyEqualityComparisonWithOnlyPredecessor - FoldValueComparisonIntoPredecessors llvm-svn: 159527
-
Kostya Serebryany authored
llvm-svn: 159522
-
Alexey Samsonov authored
1) DIContext is now able to return function name for a given instruction address (besides file/line info). 2) llvm-dwarfdump accepts flag --functions that prints the function name (if address is specified by --address flag). 3) test case that checks the basic functionality of llvm-dwarfdump added llvm-svn: 159512
-
- Jul 01, 2012
-
-
Rafael Espindola authored
implicit_def, the other instruction can be anything, including instructions that define multiple values. Be careful about that and don't assume what operand 0 is. Fixes pr13249. llvm-svn: 159509
-
Elena Demikhovsky authored
llvm-svn: 159504
-
Craig Topper authored
Reduce code size by using a second switch statement to avoid extra calls to SelectAtomic64. Also catch cases where SelectAtomic64 fails. llvm-svn: 159503
-
Craig Topper authored
llvm-svn: 159502
-
Craig Topper authored
Fix a crash on release builds if gather intrinsics are passed a non-constant value for the last argument. llvm-svn: 159501
-
Craig Topper authored
Use a second switch statement to reduce number of calls to SelectGather in code. Reduces code size a bit. llvm-svn: 159500
-