llvm-project/llvm/lib
Craig Topper 6a09aab294 [RegisterClassInfo] Invalidate the register pressure set limit cache when reserved regs or callee saved regs change
Previously we only invalidated the pressure set limit cached when the TargetRegisterInfo pointer changes. But as reserved regs and callee saved regs are used as part of calculating the limits we should invalidate when those change too.

I encountered this when reverting a patch from the 6.0 branch. One of the x86 test files had a function that used rbp as a frame pointer, making it reserved. It was followed by another function which didn't use rbp but had the same TRI so the pressure set limit cache was not invalidated. If i removed the function that used rbp as a frame pointer from the file, the remaining function then got a different register pressure limit for the GR16 pressure set. This caused the machine scheduler to change the scheduling for the function. This was an unexpected change from just deleting a function.

I don't have a test case for trunk because the particular x86 test case is different enough from the 6.0 branch to not be affected now.

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

llvm-svn: 325153
2018-02-14 18:53:29 +00:00
..
Analysis Adding a width of the GEP index to the Data Layout. 2018-02-14 06:58:08 +00:00
AsmParser [DebugInfo] Unify ChecksumKind and Checksum value in DIFile 2018-02-12 19:45:54 +00:00
BinaryFormat Add DWARF for discriminated unions 2018-02-06 23:45:59 +00:00
Bitcode [DebugInfo] Unify ChecksumKind and Checksum value in DIFile 2018-02-12 19:45:54 +00:00
CodeGen [RegisterClassInfo] Invalidate the register pressure set limit cache when reserved regs or callee saved regs change 2018-02-14 18:53:29 +00:00
DebugInfo Revert "Rewrite the cached map used for locating the most precise DIE among inlined subroutines for a given address." 2018-02-13 01:52:30 +00:00
Demangle Silence a bunch of implicit fallthrough warnings 2017-12-19 22:05:25 +00:00
ExecutionEngine [ORC] Remove Layer handles from the layer concept. 2018-02-09 02:30:40 +00:00
FuzzMutate [llvm-opt-fuzzer] Avoid adding incorrect inputs to the fuzzer corpus 2018-02-05 11:05:47 +00:00
Fuzzer [libFuzzer] Delete llvm/lib/Fuzzer 2017-10-16 20:48:19 +00:00
IR [Utils] Salvage the debug info of DCE'ed 'and' instructions 2018-02-14 13:10:35 +00:00
IRReader LLParser: add an argument for overriding data layout and do not check alloca addr space 2018-01-30 22:32:39 +00:00
LTO Revert "[ThinLTO] Add GraphTraits for FunctionSummaries" 2018-02-12 20:43:31 +00:00
LineEditor
Linker [IRMover] Move type name extraction to a separate function. NFC 2018-02-14 10:32:47 +00:00
MC Store defined macros in MCContext. 2018-02-14 16:34:27 +00:00
Object [WebAssebmly] Report undefined symbols correctly in objdump 2018-02-09 20:21:50 +00:00
ObjectYAML CodeGen: support an extension to pass linker options on ELF 2018-01-30 16:29:29 +00:00
Option [Option] For typo '-foo', suggest '--foo' 2018-01-09 19:38:04 +00:00
Passes Another try to commit 323321 (aggressive instruction combine). 2018-01-25 12:06:32 +00:00
ProfileData Remove superfluous copies in sample profiling. 2017-12-28 18:10:41 +00:00
Support Revert r325107 (case folding DJB hash) and subsequent build fix 2018-02-14 11:06:39 +00:00
TableGen [tablegen] Fixed few !foreach evaluation issues. 2018-02-09 18:37:55 +00:00
Target [X86][SSE] truncateVectorWithPACK - Use src type instead of dst to select between PACK*SDW/PACK*SWB 2018-02-14 18:23:58 +00:00
Testing Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
ToolDrivers [COFF] Keep the underscore on exported decorated stdcall functions in MSVC mode 2018-01-20 11:44:32 +00:00
Transforms Move llvm::computeLoopSafetyInfo from LICM.cpp to LoopUtils.cpp. NFC 2018-02-14 18:34:53 +00:00
WindowsManifest Fix bug 34608 by moving private header out of public header. 2017-09-14 23:01:13 +00:00
XRay [XRay] clarify error messages when parsing broken traces 2018-01-30 13:41:34 +00:00
CMakeLists.txt Moving libFuzzer from LLVM to compiler-rt. 2017-08-21 23:25:12 +00:00
LLVMBuild.txt Re-apply "Introduce FuzzMutate library" 2017-08-21 22:57:06 +00:00