1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-22 18:54:02 +01:00
llvm-mirror/unittests
Stanislav Mekhanoshin 634b6f1d8b LIS: fix handleMove to properly extend main range
handleMoveDown or handleMoveUp cannot properly repair a main
range of a LiveInterval since they only get LiveRange. There
is a problem if certain use has moved few segments away and
there is a hole in the main range in between of these two
locations. We may get a SubRange with a very extended Segment
spanning several Segments of the main range and also spanning
that hole. If that happens then we end up with the main range
not covering its SubRange which is an error.

It might be possible to attempt fixing the main range in place
just between of the old and new index by extending all of its
Segments in between, but it is unclear this logic will be
faster than just straight constructMainRangeFromSubranges,
which itself is pretty cheap since it only contains interval
logic. That will also require shrinkToUses() call after which
is probably even more expensive.

In the test second move is from 64B to 92B for the sub1.
Subrange is correctly fixed:

L000000000000000C [16r,32B:0)[32B,92r:1)  0@16r 1@32B-phi

But the main range has a hole in between 80d and 88r after
updateRange():

%1 [16r,32B:0)[32B,80r:4)[80r,80d:3)[88r,96r:1)[96r,160B:2)

Since source position is 64B this segment is not even considered
by the updateRange().

Differential Revision: https://reviews.llvm.org/D82916
2020-07-07 11:52:32 -07:00
..
ADT [Bitfields][NFC] Make sure bitfields are contiguous 2020-07-07 14:35:13 +00:00
Analysis [NFC] Adding the align attribute on Atomic{CmpXchg|RMW}Inst 2020-07-07 09:54:13 +00:00
AsmParser [SVE] Remove VectorType::getBitWidth() 2020-04-21 13:33:46 -07:00
BinaryFormat [BinaryFormat] Add formatv support for DW_OP constants 2020-06-08 15:27:44 +02:00
Bitcode [strictfp] Replace dangling strictfp attrs with nobuiltin 2020-06-15 10:05:35 -04:00
Bitstream
CodeGen GlobalISel: Add unit tests for some utils functions 2020-06-24 12:00:38 -04:00
DebugInfo [DebugInfo] Use Cursor to detect errors in debug line prologue parser 2020-07-03 11:52:06 +01:00
Demangle
ExecutionEngine [ORC] Share ownership of JITDylibs between ExecutionSession and 2020-05-10 16:37:17 -07:00
Frontend Fix missing build dependencies on omp_gen 2020-07-02 07:55:20 -06:00
FuzzMutate [SVE] Deprecate default false variant of VectorType::get 2020-06-16 15:16:11 -07:00
IR Fix [-Werror,-Wsign-compare] in dominator unit test. 2020-07-06 14:50:13 -07:00
LineEditor
Linker
MC [AIX][XCOFF] add symbol priority for the llvm-objdump -D -symbol-description 2020-05-29 11:08:51 -04:00
MI LIS: fix handleMove to properly extend main range 2020-07-07 11:52:32 -07:00
Object [ELF] Fixing an issue in Elf_Note_Impl::getDescAsStringRef 2020-06-16 10:08:31 +00:00
ObjectYAML [DWARFYAML][unittest] Use parseDWARFYAML() in unit test. NFC. 2020-07-03 22:36:00 +08:00
Option
Passes Don't export symbols from clang/opt/llc if plugins are disabled. 2020-03-23 12:17:09 -07:00
ProfileData Revert "[PGO] Extend the value profile buckets for mem op sizes." 2020-06-25 11:13:49 -07:00
Remarks
Support [Support] Fix formatted_raw_ostream for UTF-8 2020-07-06 16:18:15 +01:00
TableGen Make unittests include path relative 2020-02-21 10:19:11 +01:00
Target [ARM] Remove hasSideEffects from FP converts 2020-07-05 16:23:24 +01:00
TextAPI [llvm][TextAPI/MachO] clean up auto usages in tests, NFC 2020-06-15 19:59:42 -07:00
tools [llvm-exegesis][NFC] Let the pfm::Counter own the PerfHelper. 2020-04-08 15:37:30 +02:00
Transforms [CodeMoverUtils] Make specific analysis dependent checks optional 2020-07-07 20:11:07 +05:30
XRay Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
CMakeLists.txt
unittest.cfg.in