1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-19 02:52:53 +02:00
llvm-mirror/lib
Craig Topper 9d88bde411 [X86FixupLEAs] Turn optIncDec into a generic two address LEA optimizer. Support LEA64_32r properly.
INC/DEC is really a special case of a more generic issue. We should also turn leas into add reg/reg or add reg/imm regardless of the slow lea flags.

This also supports LEA64_32 which has 64 bit input registers and 32 bit output registers. So we need to convert the 64 bit inputs to their 32 bit equivalents to check if they are equal to base reg.

One thing to note, the original code preserved the kill flags by adding operands to the new instruction instead of using addReg. But I think tied operands aren't supposed to have the kill flag set. I dropped the kill flags, but I could probably try to preserve it in the add reg/reg case if we think its important. Not sure which operand its supposed to go on for the LEA64_32r instruction due to the super reg implicit uses. Though I'm also not sure those are needed since they were probably just created by an INSERT_SUBREG from a 32-bit input.

Differential Revision: https://reviews.llvm.org/D61472

llvm-svn: 361691
2019-05-25 06:17:47 +00:00
..
Analysis [InstSimplify] fold insertelement-of-extractelement 2019-05-24 00:13:58 +00:00
AsmParser [IR] allow fast-math-flags on select of FP values 2019-05-22 15:50:46 +00:00
BinaryFormat [XCOFF] Add functionality for parsing AIX XCOFF object file headers 2019-04-04 00:53:21 +00:00
Bitcode [IR] allow fast-math-flags on select of FP values 2019-05-22 15:50:46 +00:00
CodeGen Revert r361644, "[AMDGPU] Divergence driven ISel. Assign register class for cross block values according to the divergence." 2019-05-25 01:52:38 +00:00
DebugInfo llvm-dwarfdump: Don't error on mixed units using/not using str_offsets 2019-05-25 00:07:22 +00:00
Demangle llvm-undname: Fix an assert-on-invalid, found by oss-fuzz 2019-05-22 15:53:23 +00:00
ExecutionEngine Reverted r361134 because of a failing test left unattended for a long time. 2019-05-22 20:42:56 +00:00
Fuzzer
FuzzMutate
IR [NFC] SwitchInst: Introduce wrapper for prof branch_weights handling 2019-05-24 04:34:23 +00:00
IRReader [IRReader] Expose getLazyIRModule 2019-02-11 22:01:13 +00:00
LineEditor
Linker [IRMover] Improve diagnostic messages for conflicting metadata 2019-05-16 05:23:13 +00:00
LTO [ELF] Implement Dependent Libraries Feature 2019-05-17 03:44:15 +00:00
MC [DebugInfo] Handle '# line "file"' correctly for asm source. 2019-05-21 11:59:03 +00:00
MCA [MCA] Add the ability to compute critical register dependency of an instruction. 2019-05-23 16:32:19 +00:00
Object [llvm-dlltool] Respect NONAME keyword 2019-05-22 09:49:54 +00:00
ObjectYAML [ELF] Implement Dependent Libraries Feature 2019-05-17 03:44:15 +00:00
Option Option spell checking: Penalize delimiter flags if input has no argument 2019-05-01 16:45:15 +00:00
Passes [NewPassManager] Add tuning option: ForgetAllSCEVInLoopUnroll [NFC]. 2019-05-23 21:52:59 +00:00
ProfileData Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
Remarks [Remarks] Add string deduplication using a string table 2019-04-24 00:06:24 +00:00
Support [FileCheck] Remove llvm:: prefix 2019-05-23 17:19:36 +00:00
TableGen TableGen: Handle nontrivial foreach range bounds 2019-05-22 21:28:20 +00:00
Target [X86FixupLEAs] Turn optIncDec into a generic two address LEA optimizer. Support LEA64_32r properly. 2019-05-25 06:17:47 +00:00
Testing [Testing] Move clangd::Annotations to llvm testing support 2019-04-25 10:08:31 +00:00
TextAPI [TextAPI] Fix Symbol::dump which was failing to append the SymbolKind string. 2019-04-29 18:25:04 +00:00
ToolDrivers [llvm-ar][libObject] Fix relative paths when nesting thin archives. 2019-02-13 23:39:41 +00:00
Transforms Use the DataLayout::typeSizeEqualsStoreSize helper. NFC 2019-05-24 09:20:20 +00:00
WindowsManifest
XRay Recommit [Object] Change object::SectionRef::getContents() to return Expected<StringRef> 2019-05-16 13:24:04 +00:00
CMakeLists.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00
LLVMBuild.txt [OptRemarks] Make OptRemarks more generic: rename OptRemarks to Remarks 2019-03-05 20:45:17 +00:00