Puyan Lotfi
71540f5197
Fixing build bot error: adding const qualifiers to std::sort lambda.
...
Errors were not reproducible on clang-6.0 on ubuntu 16.04.
llvm-svn: 332192
2018-05-13 06:50:55 +00:00
Puyan Lotfi
380a6f55ff
[NFC] MIR-Canon: switching to a stable string sorting of instructions.
...
llvm-svn: 332191
2018-05-13 06:07:20 +00:00
Puyan Lotfi
14b6637edc
[MIR-Canon] Adding ISA-Agnostic COPY Folding.
...
Transforms the following:
%vreg1234:gpr32 = COPY %42
%vreg1235:gpr32 = COPY %vreg1234
%vreg1236:gpr32 = COPY %vreg1235
$w0 = COPY %vreg1236
into:
$w0 = COPY %42
Assuming %42 is also a gpr32
llvm-svn: 330113
2018-04-16 09:03:03 +00:00
Puyan Lotfi
6ea89b4041
[NFC][MIR-Canon] clang-format cleanup of Mir Canonicalizer Pass.
...
llvm-svn: 330111
2018-04-16 08:12:15 +00:00
Puyan Lotfi
8afc99363b
[MIR-Canon] Fixing warnings in Non-assert builds.
...
llvm-svn: 329258
2018-04-05 06:56:44 +00:00
Puyan Lotfi
d6f7313c8f
[MIR-Canon] Improving performance by switching to named vregs.
...
No more skipping thounsands of vregs. Much faster running time.
llvm-svn: 329246
2018-04-05 00:27:15 +00:00
Puyan Lotfi
26c504fe1e
[MIR-Canon] Adding support for multi-def -> user distance reduction.
...
llvm-svn: 329243
2018-04-05 00:08:15 +00:00
Puyan Lotfi
57c4f38c35
[MIR-Canon] Adding support for local idempotent instruction hoisting.
...
llvm-svn: 328915
2018-03-31 05:48:51 +00:00
Michael Zolotukhin
c468b648fd
Remove redundant includes from lib/CodeGen.
...
llvm-svn: 320619
2017-12-13 21:30:47 +00:00
Benjamin Kramer
51ebcaaf25
Make helpers static. NFC.
...
llvm-svn: 318953
2017-11-24 14:55:41 +00:00
David Blaikie
3f833edc7c
Target/TargetInstrInfo.h -> CodeGen/TargetInstrInfo.h to match layering
...
This header includes CodeGen headers, and is not, itself, included by
any Target headers, so move it into CodeGen to match the layering of its
implementation.
llvm-svn: 317647
2017-11-08 01:01:31 +00:00
Craig Topper
666e23b513
[CodeGen] Remove unnecessary semicolons to fix a warning. NFC
...
llvm-svn: 317342
2017-11-03 18:02:46 +00:00
Puyan Lotfi
a521c4ac55
mir-canon: First commit.
...
mir-canon (MIRCanonicalizerPass) is a pass designed to reorder instructions and
rename operands so that two similar programs will diff more cleanly after being
run through mir-canon than they would otherwise. This project is still a work
in progress and there are ideas still being discussed for improving diff
quality.
M include/llvm/InitializePasses.h
M lib/CodeGen/CMakeLists.txt
M lib/CodeGen/CodeGen.cpp
A lib/CodeGen/MIRCanonicalizerPass.cpp
llvm-svn: 317285
2017-11-02 23:37:32 +00:00