1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 10:42:39 +01:00
llvm-mirror/lib
Nikita Popov 8eac42b1cf [Inline] Fix noalias addition on simplified instructions (PR50589)
When adding noalias/alias.scope metadata, we analyze the instructions
of the original callee, and then place metadata on the corresponding
inlined instructions in the caller as provided by VMap. However, this
assumes that this actually a clone of the instruction, rather than
the result of simplification. If simplification occurred, the
instruction that VMap points to may not have any relationship as far
as ModRef behavior is concerned.

Fix this by tracking simplified instructions during cloning and then
only processing instructions that have not been simplified. This is
done with an additional map form original to cloned instruction,
into which we only insert if no simplification is performed. The
mapping in VMap can then be compared to this map. If they're the
same, the instruction hasn't been simplified. (I originally wanted
to only track a set of simplified instructions, but that wouldn't
work if the instruction only gets simplified afterwards, e.g. based
on rewritten phis.)

Fixes https://bugs.llvm.org/show_bug.cgi?id=50589.

Differential Revision: https://reviews.llvm.org/D106242
2021-07-20 19:52:41 +02:00
..
Analysis [ScalarEvolution] Refine computeMaxBECountForLT to be accurate in more cases. 2021-07-19 15:43:30 -07:00
AsmParser [IR] Add elementtype attribute 2021-07-15 18:04:26 +02:00
BinaryFormat [SystemZ][z/OS] Add GOFF support to file magic identification 2021-07-20 10:50:47 -04:00
Bitcode [BPF] Use elementtype attribute for preserve.array/struct.index intrinsics 2021-07-17 11:09:18 +02:00
Bitstream
CodeGen [PowerPC] Inefficient register allocation of ACC registers results in many copies. 2021-07-20 10:53:40 -05:00
DebugInfo [DebugInfo] Remove unnecessary <string> include dependency from DebugInfo headers. NFC. 2021-07-17 16:56:06 +01:00
Demangle Demangle: correct swift_async demangling for Microsoft scheme 2021-07-14 11:43:44 -07:00
DWARFLinker [MC] Refactor MCObjectFileInfo initialization and allow targets to create MCObjectFileInfo 2021-05-23 14:15:23 -07:00
ExecutionEngine [ORC] Explicitly convert to ArrayRefs to silence errors. 2021-07-19 20:48:30 +10:00
Extensions llvmbuildectomy - replace llvm-build by plain cmake 2020-11-13 10:35:24 +01:00
FileCheck [llvm] Rename StringRef _lower() method calls to _insensitive() 2021-06-25 00:22:01 +03:00
Frontend [OpenMP] Unified entry point for SPMD & generic kernels in the device RTL 2021-07-10 17:53:56 -05:00
Fuzzer
FuzzMutate [NewPM][FuzzMutate] Fix renaming 'unswitch' to 'simple-loop-unswitch' 2021-07-09 12:24:12 +02:00
InterfaceStub [ifs][elfabi] Merge llvm-ifs/elfabi tools 2021-07-19 11:23:19 -07:00
IR [IR] Don't accept null type in ConstantExpr::getGetElementPtr() 2021-07-17 15:59:31 +02:00
IRReader
LineEditor
Linker [CSSPGO] Do not import pseudo probe desc in thinLTO 2021-07-13 18:26:36 -07:00
LTO PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
MC [WebAssembly] Generate R_WASM_FUNCTION_OFFSET relocs in debuginfo sections 2021-07-19 14:02:33 -07:00
MCA [MCA] [In-order pipeline] Fix for 0 latency instruction causing assertion to fail. 2021-06-22 10:18:39 -07:00
Object [SystemZ][z/OS] Add GOFF support to file magic identification 2021-07-20 10:50:47 -04:00
ObjectYAML [COFF] [CodeView] Add a few new enum values 2021-07-07 22:00:18 +03:00
Option [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Passes [NewPM] Print pre-transformation IR name in --print-after-all 2021-07-20 10:20:10 -07:00
ProfileData PR51018: Remove explicit conversions from SmallString to StringRef to future-proof against C++23 2021-07-08 13:37:57 -07:00
Remarks
Support Avoid keeping internal string_views in Twine. 2021-07-20 08:46:53 -07:00
TableGen DetailedRecordsBackend.cpp - printSectionHeading - avoid std::string creation/copies. 2021-06-13 16:49:40 +01:00
Target [RISCV] Teach RISCVMatInt about cases where it can use LUI+SLLI to replace LUI+ADDI+SLLI for large constants. 2021-07-20 09:22:06 -07:00
Testing Fix for error "'Run' overrides a member function but is not marked 2021-06-11 06:56:00 -07:00
TextAPI Reland "[llvm] llvm-tapi-diff" 2021-06-09 21:17:34 -07:00
ToolDrivers [OptTable] Rename PrintHelp to printHelp 2021-06-24 14:47:03 -07:00
Transforms [Inline] Fix noalias addition on simplified instructions (PR50589) 2021-07-20 19:52:41 +02:00
WindowsManifest
XRay
CMakeLists.txt