about summary refs log tree commit diff
path: root/src/test/mir-opt/const_prop
AgeCommit message (Collapse)AuthorLines
2020-07-22Optimize away BitAnd and BitOr when possibleXavier Denis-0/+98
2020-07-22const prop into operandsBastian Kauschke-27/+211
2020-07-15improve namingBastian Kauschke-20/+20
2020-07-15mir opt cross compileBastian Kauschke-4/+4
2020-07-15mir opt diffBastian Kauschke-16/+16
2020-06-26Show the values and computation that would overflow a const evaluation or ↵Oliver Scherer-154/+232
propagation
2020-06-23The const propagator cannot trace references.Oliver Scherer-32/+4
Thus we avoid propagation of a local the moment we encounter references to it.
2020-06-21Auto merge of #71911 - wesleywiser:const_prop_small_cleanups, r=oli-obkbors-2/+4
[mir-opt] Small ConstProp cleanup
2020-06-19Rollup merge of #73130 - wesleywiser:remove_const_prop_for_indirects, r=oli-obkRalf Jung-82/+73
Remove const prop for indirects This was only used by one mir-opt test and since it causes buggy behavior under `-Zmir-opt-level=2`, it seems like we should remove it. This was split out from #71946. Closes #72679 Closes #72372 Closes #72285
2020-06-15[const-prop] Remove `ConstPropMode::NoPropagation`Wesley Wiser-2/+4
This mode is unnecessary because it's always ok to evaluate the right-hand side of assignments even if the left-hand side should not have reads propagated.
2020-06-13Prefer the associated consts for pattern matching errorLzu Tao-2/+2
2020-06-09Stop allowing `Indirect(..)` values to be propagatedWesley Wiser-82/+73
Closes #72679 Closes #72372 Closes #72285
2020-06-04Revert "Bless mir-opt tests"Felix S. Klock II-6/+6
This reverts commit a030c923412b0a0f7b02a585debe7bf60357370d.
2020-05-24Clear MIR local type annotations after borrowckJonas Schievink-9/+9
2020-05-17Auto merge of #72135 - oli-obk:const_prop_deaggregates, r=wesleywiserbors-0/+165
Propagate locals, even if they have unpropagatable assignments somewhere Second try for https://github.com/rust-lang/rust/pull/71946#discussion_r422967292 r? @wesleywiser cc @rust-lang/wg-mir-opt @RalfJung
2020-05-16Bless mir-opt tests to account for #72220Wesley Wiser-4/+2
2020-05-14[const-prop] Don't replace Rvalues that are already constantsWesley Wiser-4/+2
2020-05-12Pointer printing: do not print 0 offsetRalf Jung-9/+9
2020-05-12Add some more sanity tests and add a debug log message for itOliver Scherer-0/+89
2020-05-12Propagate locals, even if they have unpropagatable assignments somewhere.Oliver Scherer-3/+12
2020-05-12Add a repro example for not propagating constants of partially const ↵Oliver Scherer-0/+69
initialized variables
2020-05-11Auto merge of #71953 - oli-obk:const_prop_deaggregates, r=wesleywiserbors-0/+284
Const prop aggregates even if partially or fully modified r? @wesleywiser cc @rust-lang/wg-mir-opt I'm moderately scared of this change, but I'm confident in having reviewed all the cases.
2020-05-09Bless mir-opt testsMatthew Jasper-6/+6
2020-05-07Renamed "undef" stuff to "uninit"Hanif Bin Ariffin-2/+2
1. InvalidUndefBytes -> InvalidUninitBytes 2. ScalarMaybeUndef -> ScalarMaybeUninit 3. UndefMask -> InitMask Related issue #71193
2020-05-06Const prop aggregates even if partially or fully modifiedOliver Scherer-0/+284
2020-05-02Added MIR constant propagation of Scalars into function call argumentsFélix Fischer-3/+10
- Documented rationale of current solution - Polished documentation
2020-04-28Added MIR const-prop diff tests to show why some assertions now fail at ↵Félix Fischer-0/+421
compile-time
2020-04-28Allow Locals to be propagated into and from, but restricted to their own blockFélix Fischer-2/+22
2020-04-27Added regression test for literal propagation and for scalar pair propagationFélix Fischer-0/+121
2020-04-27Emit basic block ids for statements and terminators in MIR only in -Zverbose ↵Oliver Scherer-486/+476
mode
2020-04-23Add leading 0x to offset in Debug fmt of PointerDavid Cook-6/+6
2020-04-17ty/print: pretty-print constant aggregates (arrays, tuples and ADTs).Eduard-Mihai Burtescu-2/+2
2020-04-17mir: pretty-print `Rvalue::Aggregate` correctly.Eduard-Mihai Burtescu-2/+2
2020-04-15Remove other RvaluesWesley Wiser-100/+20
2020-04-14update 32 bit mir-opt testsBastian Kauschke-9/+46
2020-04-13bless mir opt testsBastian Kauschke-35/+169
2020-04-11Use write!-style syntax for MIR assert terminatorrobojumper-16/+16
2020-04-07Normalize away pairs of line:col numbers.Ana-Maria Mihalache-5/+5
2020-04-07Add EMIT_MIR_FOR_EACH_BIT_WIDTH to tests that need it.Ana-Maria Mihalache-243/+875
2020-04-07--bless more mir-opt tests.Ana-Maria Mihalache-689/+1567
2020-03-26Enable `--bless`ing of MIR dumpsOliver Scherer-44/+50
2020-03-21Resolve worsened debug build codegenWesley Wiser-0/+64
2020-03-11Print leading zeros for non pointersOliver Scherer-1/+1
2020-03-11Don't print leading zeros on hex dumps constantsOliver Scherer-1/+1
2020-03-11Deduplicate and clean up pretty printing logicOliver Scherer-4/+4
2020-02-01Update existing tests for or-patternsMatthew Jasper-10/+10
2020-01-24Render const pointers in MIR more compactlyOliver Scherer-2/+2
2020-01-12Turn off const propagation of ref takingWesley Wiser-2/+2
Fixes #67529 Fixes #67640 Fixes #67641 Fixes #67862
2020-01-10Add regression tests for promotion mir expansionOliver Scherer-0/+59
2020-01-10Promote `Ref`s to constants instead of staticSantiago Pastorino-4/+8