- Feb 10, 2012
-
-
Andrew Trick authored
Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. llvm-svn: 150226
-
Jim Grosbach authored
rdar://10838899 llvm-svn: 150222
-
- Feb 09, 2012
-
-
Sirish Pande authored
llvm-svn: 150178
-
James Molloy authored
Teach the MC and disassembler about SoftFail, and hook it up to UNPREDICTABLE on ARM. Wire this to tBLX in order to provide test coverage. llvm-svn: 150169
-
Craig Topper authored
llvm-svn: 150167
-
Craig Topper authored
Flatten some of the arrays in the X86 disassembler tables to reduce space needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953. llvm-svn: 150161
-
Jakob Stoklund Olesen authored
Calls clobber the flags, but when using register masks there is no EFLAGS<imp-def> operand. llvm-svn: 150117
-
- Feb 08, 2012
-
-
Andrew Trick authored
Moving toward a uniform style of pass definition to allow easier target configuration. Globally declare Pass ID. Globally declare pass initializer. Use INITIALIZE_PASS consistently. Add a call to the initializer from CodeGen.cpp. Remove redundant "createPass" functions and "getPassName" methods. While cleaning up declarations, cleaned up comments (sorry for large diff). llvm-svn: 150100
-
Andrew Trick authored
llvm-svn: 150097
-
Andrew Trick authored
llvm-svn: 150096
-
Andrew Trick authored
llvm-svn: 150095
-
Andrew Trick authored
llvm-svn: 150093
-
Andrew Trick authored
llvm-svn: 150091
-
Brendon Cahoon authored
Creating the isPredicated TSFlag enables the code to use the property defined in the instruction format instead of using a large switch statement. llvm-svn: 150078
-
Elena Demikhovsky authored
> This IR code > %res = call <8 x float> @llvm.x86.avx.cmp.ps.256(<8 x float> %a0, <8 x float> %a1, i8 14) > fails with assertion: > > llc: X86ATTInstPrinter.cpp:62: void llvm::X86ATTInstPrinter::printSSECC(const llvm::MCInst*, unsigned int, llvm::raw_ostream&): Assertion `0 && "Invalid ssecc argument!"' failed. > 0 llc 0x0000000001355803 > 1 llc 0x0000000001355dc9 > 2 libpthread.so.0 0x00007f79a30575d0 > 3 libc.so.6 0x00007f79a23a1945 gsignal + 53 > 4 libc.so.6 0x00007f79a23a2f21 abort + 385 > 5 libc.so.6 0x00007f79a239a810 __assert_fail + 240 > 6 llc 0x00000000011858d5 llvm::X86ATTInstPrinter::printSSECC(llvm::MCInst const*, unsigned int, llvm::raw_ostream&) + 119 I added the full testing for all possible pseudo-ops of cmp. I extended X86AsmPrinter.cpp and X86IntelInstPrinter.cpp. You'l also see lines alignments (unrelated to this fix) in X86IselLowering.cpp from my previous check-in. llvm-svn: 150068
-
Craig Topper authored
llvm-svn: 150067
-
Craig Topper authored
Remove GCC builtins for vpermilp* intrinsics as clang no longer needs them. Custom lower the intrinsics to the vpermilp target specific node and remove intrinsic patterns. llvm-svn: 150060
-
Chad Rosier authored
llvm-svn: 150047
-
Chad Rosier authored
llvm-svn: 150045
-
Chad Rosier authored
llvm-svn: 150014
-
- Feb 07, 2012
-
-
Evan Cheng authored
llvm-svn: 150008
-
Evan Cheng authored
load / store) if the ADD / SUB has a live definition of CPSR. Bug reported by David Meyer. Alas, no test case. llvm-svn: 149970
-
Craig Topper authored
llvm-svn: 149968
-
Craig Topper authored
llvm-svn: 149961
-
Chad Rosier authored
llvm-svn: 149934
-
- Feb 06, 2012
-
-
Andrew Trick authored
llvm-svn: 149926
-
Derek Schuff authored
This CL delays reading of function bodies from initial parse until materialization, allowing overlap of compilation with bitcode download. llvm-svn: 149918
-
Chris Lattner authored
instead of always using ConstantVector. llvm-svn: 149912
-
Bill Wendling authored
remove the code that handles them. llvm-svn: 149901
-
Benjamin Kramer authored
llvm-svn: 149866
-
Benjamin Kramer authored
Reorder includes while at it. llvm-svn: 149863
-
Craig Topper authored
llvm-svn: 149859
-
- Feb 05, 2012
-
-
Evan Cheng authored
llvm-svn: 149846
-
Duncan Sands authored
above. llvm-svn: 149841
-
Duncan Sands authored
llvm-svn: 149834
-
Duncan Sands authored
llvm-svn: 149833
-
Chandler Carruth authored
convert at least one client over to use them. Subsequent patches both to LLVM and Clang will try to convert more people over to a common set of predicates. This round of predicates is focused on OS-categorization predicates. llvm-svn: 149815
-
Craig Topper authored
llvm-svn: 149814
-
Craig Topper authored
llvm-svn: 149809
-
Craig Topper authored
llvm-svn: 149808
-