1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-21 03:53:04 +02:00
llvm-mirror/lib
Simon Dardis 2e9a461206 [inlineasm] Propagate operand constraints to the backend
When SelectionDAGISel transforms a node representing an inline asm
block, memory constraint information is not preserved. This can cause
constraints to be broken when a memory offset is of the form:

offset + frame index

when the frame is resolved.

By propagating the constraints all the way to the backend, targets can
enforce memory operands of inline assembly to conform to their constraints.

For MIPSR6, some instructions had their offsets reduced to 9 bits from
16 bits such as ll/sc. This becomes problematic when using inline assembly
to perform atomic operations, as an offset can generated that is too big to
encode in the instruction.

Reviewers: dsanders, vkalintris

Differential Review: https://reviews.llvm.org/D21615

llvm-svn: 275786
2016-07-18 13:17:31 +00:00
..
Analysis [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
AsmParser Add writeonly IR attribute 2016-07-04 08:01:29 +00:00
Bitcode [ThinLTO] Perform profile-guided indirect call promotion 2016-07-17 14:47:01 +00:00
CodeGen [inlineasm] Propagate operand constraints to the backend 2016-07-18 13:17:31 +00:00
DebugInfo [pdb] Teach MsfBuilder and other classes about the Free Page Map. 2016-07-15 22:17:19 +00:00
ExecutionEngine [LLVM][MIPS] Fix createStubFunction to emit JR encoding based on Arch. 2016-07-15 12:56:37 +00:00
Fuzzer [libFuzzer] add hooks for strstr, strcasestr, strcasecmp, strncasecmp 2016-07-15 23:27:19 +00:00
IR [OptRemark,LDist] RFC: Add hotness attribute 2016-07-15 17:23:20 +00:00
IRReader
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor
Linker IR: New representation for CFI and virtual call optimization pass metadata. 2016-06-24 21:21:32 +00:00
LTO Move legacy LTO interface headers to legacy/ directory. 2016-07-14 21:21:16 +00:00
MC [codeview] Shrink inlined call site line info tables 2016-07-14 23:47:15 +00:00
Object BPF: Use official ELF e_machine value 2016-07-15 22:27:55 +00:00
ObjectYAML BPF: Use official ELF e_machine value 2016-07-15 22:27:55 +00:00
Option
Passes [PM] Convert IVUsers analysis to new pass manager. 2016-07-16 22:51:33 +00:00
ProfileData [Coverage] Mark a few more methods const (NFC) 2016-07-15 01:19:33 +00:00
Support [Object] Re-apply r275316 now that I have the corresponding LLD patch ready. 2016-07-14 02:24:01 +00:00
TableGen [TableGen] Autobrief-ize Record. NFC. 2016-07-14 14:53:14 +00:00
Target [inlineasm] Propagate operand constraints to the backend 2016-07-18 13:17:31 +00:00
Transforms [GVNHoist] Change the key for VNtoInsns to a pair 2016-07-18 06:11:37 +00:00
CMakeLists.txt
LLVMBuild.txt