| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
UNPREDICTABLE on ARM. Wire this to tBLX in order to provide test coverage.
llvm-svn: 150169
|
| |
|
|
| |
llvm-svn: 150167
|
| |
|
|
|
|
| |
needed to store pointers on 64-bit hosts and reduce relocations needed at startup. Part of PR11953.
llvm-svn: 150161
|
| |
|
|
|
|
|
| |
Calls clobber the flags, but when using register masks there is no
EFLAGS<imp-def> operand.
llvm-svn: 150117
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 150097
|
| |
|
|
| |
llvm-svn: 150096
|
| |
|
|
| |
llvm-svn: 150095
|
| |
|
|
| |
llvm-svn: 150093
|
| |
|
|
| |
llvm-svn: 150091
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
> 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
|
| |
|
|
| |
llvm-svn: 150067
|
| |
|
|
|
|
| |
Custom lower the intrinsics to the vpermilp target specific node and remove intrinsic patterns.
llvm-svn: 150060
|
| |
|
|
| |
llvm-svn: 150047
|
| |
|
|
| |
llvm-svn: 150045
|
| |
|
|
| |
llvm-svn: 150014
|
| |
|
|
| |
llvm-svn: 150008
|
| |
|
|
|
|
|
|
| |
load / store) if the ADD / SUB has a live definition of CPSR.
Bug reported by David Meyer. Alas, no test case.
llvm-svn: 149970
|
| |
|
|
| |
llvm-svn: 149968
|
| |
|
|
| |
llvm-svn: 149961
|
| |
|
|
| |
llvm-svn: 149934
|
| |
|
|
| |
llvm-svn: 149926
|
| |
|
|
|
|
|
| |
This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918
|
| |
|
|
|
|
| |
instead of always using ConstantVector.
llvm-svn: 149912
|
| |
|
|
|
|
| |
remove the code that handles them.
llvm-svn: 149901
|
| |
|
|
| |
llvm-svn: 149866
|
| |
|
|
|
|
| |
Reorder includes while at it.
llvm-svn: 149863
|
| |
|
|
|
|
| |
decoding.
llvm-svn: 149859
|
| |
|
|
| |
llvm-svn: 149846
|
| |
|
|
|
|
| |
above.
llvm-svn: 149841
|
| |
|
|
| |
llvm-svn: 149834
|
| |
|
|
| |
llvm-svn: 149833
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 149814
|
| |
|
|
| |
llvm-svn: 149809
|
| |
|
|
| |
llvm-svn: 149808
|
| |
|
|
|
|
| |
lower intrinsics to it. Use it instead of intrinsic to handle 64-bit vector multiplies.
llvm-svn: 149807
|
| |
|
|
|
|
|
|
|
| |
but with a critical fix to the SelectionDAG code that optimizes copies
from strings into immediate stores: the previous code was stopping reading
string data at the first nul. Address this by adding a new argument to
llvm::getConstantStringInfo, preserving the behavior before the patch.
llvm-svn: 149800
|
| |
|
|
|
|
| |
to the same instruction with different types. This would be better accomplished with casts in the not yet created xopintrin.h header file.
llvm-svn: 149795
|
| |
|
|
|
|
|
|
|
|
| |
Passes prior to instructon selection are now split into separate configurable stages.
Header dependencies are simplified.
The bulk of this diff is simply removal of the silly DisableVerify flags.
Sorry for the target header churn. Attempting to stabilize them.
llvm-svn: 149754
|
| |
|
|
| |
llvm-svn: 149716
|
| |
|
|
| |
llvm-svn: 149714
|
| |
|
|
| |
llvm-svn: 149712
|
| |
|
|
| |
llvm-svn: 149706
|
| |
|
|
| |
llvm-svn: 149704
|
| |
|
|
|
|
| |
performs the same calculation.
llvm-svn: 149683
|
| |
|
|
|
|
| |
LowerBUILD_VECTOR. Condition was already guaranteed by earlier code.
llvm-svn: 149680
|
| |
|
|
|
|
|
|
|
|
|
| |
Allows command line overrides to be centralized in LLVMTargetMachine.cpp.
LLVMTargetMachine can intercept common passes and give precedence to command line overrides.
Allows adding "internal" target configuration options without touching TargetOptions.
Encapsulates the PassManager.
Provides a good point to initialize all CodeGen passes so that Pass ID's can be used in APIs.
Allows modifying the target configuration hooks without rebuilding the world.
llvm-svn: 149672
|
| |
|
|
| |
llvm-svn: 149671
|