Page MenuHomePhabricator

regehr (John Regehr)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 23 2015, 2:21 AM (390 w, 5 d)

Recent Activity

Jan 4 2023

regehr accepted D141018: llvm-reduce: Don't delete instructions in global variable reduction.

LGTM. I agree this is a good change, delta passes shouldn't try to be too clever.

Jan 4 2023, 4:29 PM · Restricted Project, Restricted Project

Jan 3 2023

regehr accepted D140566: llvm-reduce: Refine missing argument behavior.
Jan 3 2023, 8:30 AM · Restricted Project, Restricted Project
regehr added a comment to D140566: llvm-reduce: Refine missing argument behavior.

(I actually wanted the "Don't require any other arguments for --print-delta-passes" just the other day)

Jan 3 2023, 8:29 AM · Restricted Project, Restricted Project

Jan 2 2023

regehr added a comment to D140866: llvm-reduce: Reduce prologue data.

llvm-reduce change is LGTM

Jan 2 2023, 8:27 PM · Restricted Project, Restricted Project
regehr added a comment to D140865: llvm-reduce: Reduce prefix data.

ok the llvm-reduce change looks clearly good. I'm not the right person to look at the other part

Jan 2 2023, 8:26 PM · Restricted Project, Restricted Project
regehr added a comment to D140865: llvm-reduce: Reduce prefix data.

omg thank you, the cloning bug(s) have been bothering me for a long time

Jan 2 2023, 7:31 PM · Restricted Project, Restricted Project

Dec 1 2022

regehr added a comment to D138953: llvm-reduce: Try to kill parallel workitems once we have a result..

just fyi, the experience with this from C-Reduce is that first, killed compilers will tend to leave crap in /tmp or similar, and this builds up over time, but usually not that quickly.

opt and llc don't do this, so I'm not too worried about this. Not sure what I would try to do about this anyway since tools tend to make up their own random unique filenames.

Dec 1 2022, 3:06 PM · Restricted Project, Restricted Project
regehr accepted D138919: llvm-reduce: Fix tsan failures.

LGTM!

Dec 1 2022, 8:10 AM · Restricted Project, Restricted Project

Nov 29 2022

regehr added a comment to D138953: llvm-reduce: Try to kill parallel workitems once we have a result..

just fyi, the experience with this from C-Reduce is that first, killed compilers will tend to leave crap in /tmp or similar, and this builds up over time, but usually not that quickly.

Nov 29 2022, 3:03 PM · Restricted Project, Restricted Project

Oct 21 2022

regehr added a comment to D136476: llvm-reduce: Add flag reduction pass.

My idea of simpler to understand is codegens to fewer instructions. Things that introduce undefined behavior are more likely to enable optimizations and different lowerings that reduce instructions emitted

Oct 21 2022, 11:46 AM · Restricted Project, Restricted Project
regehr accepted D136476: llvm-reduce: Add flag reduction pass.

there's a simple test that we can apply to determine whether we add or remove any given flag: we should do whatever reduces the amount of undefined behavior. so, for example, nsw is one that we definitely to eliminate because this makes code more defined and hence (in general) easier to understand.

Oct 21 2022, 11:27 AM · Restricted Project, Restricted Project

Oct 10 2022

regehr accepted D135606: llvm-reduce: Improve delta pass flag handling.

LGTM

Oct 10 2022, 11:22 AM · Restricted Project, Restricted Project

Oct 9 2022

regehr added a comment to D135539: llvm-reduce: Don't write out IR to score IR complexity.

so at some level here we're scoring a test case based on how simple it is for a human being to understand. I mean, that's what we should be doing. from that point of view, I dislike assigning a small cost to poison and undef -- they're probably the most semantically challenging concepts in this entire IR, in terms of the number of compiler bugs they have caused.

Oct 9 2022, 10:34 AM · Restricted Project, Restricted Project

Oct 1 2022

regehr added a reviewer for D134419: Patch to fix cloning block addresses correctly in CloneModule: aeubanks.
Oct 1 2022, 12:00 PM · Restricted Project, Restricted Project

Aug 15 2022

regehr added a comment to D131920: llvm-reduce: call simplifyCFG on individual basic blocks.

looks like the landed commit 2f1fa6242a1fff0743f74b67f9ea6c08259acfa1 didn't contain phab's summary in its commit message

Aug 15 2022, 4:35 PM · Restricted Project, Restricted Project
regehr accepted D131922: [llvm-reduce] Move most debugging output behind --verbose.

I like this -- especially the part that gets rid of the interestingness test's output

Aug 15 2022, 2:57 PM · Restricted Project, Restricted Project
regehr committed rG2f1fa6242a1f: this pass calls simplifyCFG on individual basic blocks; we want this (authored by regehr).
this pass calls simplifyCFG on individual basic blocks; we want this
Aug 15 2022, 2:46 PM · Restricted Project, Restricted Project
regehr closed D131920: llvm-reduce: call simplifyCFG on individual basic blocks.
Aug 15 2022, 2:46 PM · Restricted Project, Restricted Project
regehr requested review of D131920: llvm-reduce: call simplifyCFG on individual basic blocks.
Aug 15 2022, 1:54 PM · Restricted Project, Restricted Project

Aug 13 2022

regehr committed rGdf308cab28bd: fix some bad logic that was removing all successor phi nodes, not just (authored by regehr).
fix some bad logic that was removing all successor phi nodes, not just
Aug 13 2022, 6:16 PM · Restricted Project, Restricted Project
regehr closed D131843: llvm-reduce: remove a crash in the basic block reducing pass.
Aug 13 2022, 6:15 PM · Restricted Project, Restricted Project
regehr updated the diff for D131843: llvm-reduce: remove a crash in the basic block reducing pass.
Aug 13 2022, 6:12 PM · Restricted Project, Restricted Project
regehr updated the summary of D131843: llvm-reduce: remove a crash in the basic block reducing pass.
Aug 13 2022, 12:48 PM · Restricted Project, Restricted Project
regehr requested review of D131843: llvm-reduce: remove a crash in the basic block reducing pass.
Aug 13 2022, 12:34 PM · Restricted Project, Restricted Project

Aug 10 2022

regehr accepted D131505: [llvm-reduce] Try harder to not create invalid aliases.
Aug 10 2022, 3:51 PM · Restricted Project, Restricted Project
regehr added a comment to D131505: [llvm-reduce] Try harder to not create invalid aliases.

I like the debug output and I also like making more test cases abort on invalid IR, we definitely have some bugs to flush out here.

Aug 10 2022, 3:50 PM · Restricted Project, Restricted Project
regehr accepted D123749: [llvm-reduce] Add delta pass to run IR passes.

LGTM

Aug 10 2022, 3:07 PM · Restricted Project, Restricted Project

Aug 4 2022

regehr added a comment to D123749: [llvm-reduce] Add delta pass to run IR passes.

LGTM but happy to wait for Matt's view.

Aug 4 2022, 8:29 PM · Restricted Project, Restricted Project
regehr abandoned D128470: llvm-reduce: reduce using opt passes.
Aug 4 2022, 7:28 PM · Restricted Project, Restricted Project
regehr added inline comments to D123749: [llvm-reduce] Add delta pass to run IR passes.
Aug 4 2022, 7:27 PM · Restricted Project, Restricted Project
regehr added inline comments to D131204: llvm-reduce: add a pass for cleaning up branches.
Aug 4 2022, 4:15 PM · Restricted Project, Restricted Project
regehr added a comment to D128470: llvm-reduce: reduce using opt passes.

here's a proposal: if we decide to go forward with my patch instead of Arthur's, I'll do a bit of work to remove the passes one by one in order to help us make a more informed decision about which passes we should be running here.

Aug 4 2022, 4:08 PM · Restricted Project, Restricted Project
regehr added a reviewer for D123749: [llvm-reduce] Add delta pass to run IR passes: regehr.
Aug 4 2022, 4:00 PM · Restricted Project, Restricted Project
regehr added a comment to D128470: llvm-reduce: reduce using opt passes.

Overlap with D123749?

Aug 4 2022, 3:46 PM · Restricted Project, Restricted Project
regehr added a reviewer for D128470: llvm-reduce: reduce using opt passes: arsenm.

this patch is currently failing some tests but I can fix that up quickly. I just benchmarked it and it reduces final file size by 7% on my test cases. not earthshattering, but the reduced files end up being somewhat more pleasant to look at, since the passes leave things looking nice and canonical. anyone have time to look this over?

Aug 4 2022, 3:31 PM · Restricted Project, Restricted Project
regehr added inline comments to D131204: llvm-reduce: add a pass for cleaning up branches.
Aug 4 2022, 2:42 PM · Restricted Project, Restricted Project
regehr requested review of D131204: llvm-reduce: add a pass for cleaning up branches.
Aug 4 2022, 2:31 PM · Restricted Project, Restricted Project
regehr committed rG213c21fe10bb: earlier I fixed a bug where the BB removal pass sometimes created (authored by regehr).
earlier I fixed a bug where the BB removal pass sometimes created
Aug 4 2022, 9:22 AM · Restricted Project, Restricted Project
regehr closed D131132: a better fix for llvm-reduce's basicblock pass.
Aug 4 2022, 9:22 AM · Restricted Project, Restricted Project
regehr updated the diff for D131132: a better fix for llvm-reduce's basicblock pass.

ok hopefully final version, sorry, getting started slowly this morning

Aug 4 2022, 8:57 AM · Restricted Project, Restricted Project
regehr updated the diff for D131132: a better fix for llvm-reduce's basicblock pass.

better now

Aug 4 2022, 8:55 AM · Restricted Project, Restricted Project
regehr updated the diff for D131132: a better fix for llvm-reduce's basicblock pass.

updated patch with code suggested by matt, thanks, this is much better

Aug 4 2022, 8:30 AM · Restricted Project, Restricted Project

Aug 3 2022

regehr added inline comments to D131132: a better fix for llvm-reduce's basicblock pass.
Aug 3 2022, 6:22 PM · Restricted Project, Restricted Project
regehr abandoned D20669: [ConstantRange / SCEV] generalize overflow checking for ConstantRanges.
Aug 3 2022, 5:55 PM · Restricted Project
regehr added a comment to D131132: a better fix for llvm-reduce's basicblock pass.

this is the first version of llvm-reduce I've seen that makes it all the way through my benchmark suite in --abort-on-invalid-reduction mode!

Aug 3 2022, 5:37 PM · Restricted Project, Restricted Project
regehr requested review of D131132: a better fix for llvm-reduce's basicblock pass.
Aug 3 2022, 5:36 PM · Restricted Project, Restricted Project
regehr closed D131072: llvm-reduce: avoid duplicating switch cases.

fixed via https://github.com/llvm/llvm-project/commit/5b4f6d8b4b861cad94bf85e9492ac9b1fb4e15e2

Aug 3 2022, 9:08 AM · Restricted Project, Restricted Project
regehr committed rG5b4f6d8b4b86: prevent llvm-reduce from duplicating values in switch cases when turning… (authored by regehr).
prevent llvm-reduce from duplicating values in switch cases when turning…
Aug 3 2022, 9:07 AM · Restricted Project, Restricted Project
regehr updated the diff for D131072: llvm-reduce: avoid duplicating switch cases.

address comment by Matt

Aug 3 2022, 9:03 AM · Restricted Project, Restricted Project
regehr requested review of D131072: llvm-reduce: avoid duplicating switch cases.
Aug 3 2022, 8:36 AM · Restricted Project, Restricted Project

Aug 2 2022

regehr committed rGd469f136bee0: oops-- I pushed previous commit from a fresh checkout and forgot to (authored by regehr).
oops-- I pushed previous commit from a fresh checkout and forgot to
Aug 2 2022, 9:28 PM · Restricted Project, Restricted Project
regehr committed rG1116fa476504: avoid a bug where we remove a BB and then the next one becomes the (authored by regehr).
avoid a bug where we remove a BB and then the next one becomes the
Aug 2 2022, 9:23 PM · Restricted Project, Restricted Project
regehr closed D131026: stop llvm-reduce's ReduceBasicBlocks delta pass from creating invalid IR.
Aug 2 2022, 9:23 PM · Restricted Project, Restricted Project
regehr added a comment to D131026: stop llvm-reduce's ReduceBasicBlocks delta pass from creating invalid IR.

LGTM. I do think something is off about how the pass currently tries to auto-fold unconditional branches to successors. I was thinking there should be a separate control flow simplification to clean those up

Aug 2 2022, 9:05 PM · Restricted Project, Restricted Project
regehr updated the diff for D131026: stop llvm-reduce's ReduceBasicBlocks delta pass from creating invalid IR.

thanks Arthur-- I've added this test and also refined the safety check in the pass to be less conservative

Aug 2 2022, 7:24 PM · Restricted Project, Restricted Project
regehr requested review of D131026: stop llvm-reduce's ReduceBasicBlocks delta pass from creating invalid IR.
Aug 2 2022, 3:18 PM · Restricted Project, Restricted Project
regehr closed D130991: llvm-reduce -- make it faster by running function passes first.

closed via https://github.com/llvm/llvm-project/commit/71d1bd145724ea81c35c8811e74fff8402ea8e3a

Aug 2 2022, 9:34 AM · Restricted Project, Restricted Project
regehr committed rG71d1bd145724: llvm-reduce: reorder passes to run the ones first that delete function bodies… (authored by regehr).
llvm-reduce: reorder passes to run the ones first that delete function bodies…
Aug 2 2022, 9:33 AM · Restricted Project, Restricted Project
regehr requested review of D130991: llvm-reduce -- make it faster by running function passes first.
Aug 2 2022, 8:47 AM · Restricted Project, Restricted Project
regehr abandoned D116984: foo.
Aug 2 2022, 8:39 AM · Restricted Project, Restricted Project

Jul 13 2022

regehr added a comment to D129629: [llvm-reduce] Fix crash when reducing integer vectors to 1.

I definitely support renaming any inaccurately named tests to be more accurate

Jul 13 2022, 7:02 AM · Restricted Project, Restricted Project

Jun 27 2022

regehr added a comment to D128317: stop llvm-reduce from introducing undefs.

Also, notice that this patch takes a bunch of program points that introduce undef and makes them all point to a getDefaultValue() function that we can trivially modify to start adding undefs again, perhaps protected by a command line argument, if that ended up being desirable. I'll make that change if it would benefit you. (But I still strongly believe that decreasing the number of undefs or at least leaving it unchanged is the correct default for basically any standard use case for llvm-reduce.)

Jun 27 2022, 6:48 PM · Restricted Project, Restricted Project
regehr added a comment to D128317: stop llvm-reduce from introducing undefs.

hi Matt, I wanted first to echo what Nuno said and second say that if this change is somehow detrimental to performing test case reductions that you care about, please send me the specific example (or maybe just post it on discourse and tag me) and let's figure out what to do about it. My hope and belief here are that this probably won't happen, but you never know.

Jun 27 2022, 6:46 PM · Restricted Project, Restricted Project

Jun 23 2022

regehr requested review of D128470: llvm-reduce: reduce using opt passes.
Jun 23 2022, 3:06 PM · Restricted Project, Restricted Project

Jun 22 2022

regehr committed rG2962f9df7ca3: stop llvm-reduce from introducing undefs (authored by regehr).
stop llvm-reduce from introducing undefs
Jun 22 2022, 7:41 PM · Restricted Project, Restricted Project
regehr closed D128317: stop llvm-reduce from introducing undefs.
Jun 22 2022, 7:41 PM · Restricted Project, Restricted Project
regehr updated the diff for D128317: stop llvm-reduce from introducing undefs.

clang-format and address review

Jun 22 2022, 6:32 PM · Restricted Project, Restricted Project
regehr added inline comments to D128317: stop llvm-reduce from introducing undefs.
Jun 22 2022, 6:18 PM · Restricted Project, Restricted Project

Jun 21 2022

regehr requested review of D128317: stop llvm-reduce from introducing undefs.
Jun 21 2022, 6:34 PM · Restricted Project, Restricted Project
regehr committed rG87710235433f: in the absense of the -max-pass-iterations command line options, make (authored by regehr).
in the absense of the -max-pass-iterations command line options, make
Jun 21 2022, 9:48 AM · Restricted Project, Restricted Project
regehr closed D128284: llvm-reduce: run the set of passes more times, by default.
Jun 21 2022, 9:48 AM · Restricted Project, Restricted Project
regehr requested review of D128284: llvm-reduce: run the set of passes more times, by default.
Jun 21 2022, 8:38 AM · Restricted Project, Restricted Project

Jan 10 2022

regehr added a comment to D116871: [llvm-reduce] optionally keep running delta passes until they stop making the IR smaller.

oof, sorry, I'm still figuring out the new interface, this is committed here:

Jan 10 2022, 9:37 PM · Restricted Project
regehr closed D116871: [llvm-reduce] optionally keep running delta passes until they stop making the IR smaller.
Jan 10 2022, 9:34 PM · Restricted Project
regehr committed rG4eec1710c518: allow llvm-reduce, if asked, to run its set of passes more than once, taking… (authored by regehr).
allow llvm-reduce, if asked, to run its set of passes more than once, taking…
Jan 10 2022, 9:30 PM
regehr updated the diff for D116871: [llvm-reduce] optionally keep running delta passes until they stop making the IR smaller.

add FIXME suggested by @aeubanks

Jan 10 2022, 6:37 PM · Restricted Project
regehr abandoned D116986: this change allows the user to specify the largest number of times that llvm-reduce's main delta loop will run. however, llvm-reduce will exit earlier than this if non-progress is detected; this happens when running the full set of delta passes....
Jan 10 2022, 6:37 PM · Restricted Project
regehr requested review of D116986: this change allows the user to specify the largest number of times that llvm-reduce's main delta loop will run. however, llvm-reduce will exit earlier than this if non-progress is detected; this happens when running the full set of delta passes....
Jan 10 2022, 6:36 PM · Restricted Project
regehr requested review of D116984: foo.
Jan 10 2022, 6:17 PM · Restricted Project, Restricted Project
regehr added inline comments to D116871: [llvm-reduce] optionally keep running delta passes until they stop making the IR smaller.
Jan 10 2022, 2:03 PM · Restricted Project

Jan 8 2022

regehr requested review of D116871: [llvm-reduce] optionally keep running delta passes until they stop making the IR smaller.
Jan 8 2022, 2:21 PM · Restricted Project

Feb 14 2021

regehr added a comment to D96654: [NOT-TO-BE-MERGED] Add alive2-based fuzzer.

this is very cool, Florian. do you mind letting us know (or maintaining a list somewhere) of bugs this finds?

Feb 14 2021, 3:56 PM

Jul 8 2020

regehr added a comment to D83360: [InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X.

Did you mean to check something like the following?

define i32 @src(i1 %cond, i32 %x) {
  %x2 = freeze i32 %x
  %s = select i1 %cond, i32 %x2, i32 undef
  ret i32 %s
}

define i32 @tgt(i1 %cond, i32 %x) {
  %x2 = freeze i32 %x
  ret i32 %x2
}
Jul 8 2020, 6:42 PM · Restricted Project, Restricted Project
regehr added a comment to D83360: [InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X.

@craig.topper ok, I agree that should work. alive doesn't like it -- is this an alive bug @nlopes? a freeze should not yield undef.
https://alive2.llvm.org/ce/z/mWAsYv

Jul 8 2020, 2:48 PM · Restricted Project, Restricted Project
regehr added a comment to D83360: [InstSimplify] Remove select ?, undef, X -> X and select ?, X, undef -> X.

@majnemer should work: https://alive2.llvm.org/ce/z/vL4yn4

Jul 8 2020, 2:40 PM · Restricted Project, Restricted Project

Apr 1 2020

regehr added a comment to D77219: UBSan ␇ runtime.

Sorry but I don't think this can land until it has options for sending sanitizer output to Slack channels and SMS numbers.

Apr 1 2020, 8:28 AM · Restricted Project, Restricted Project

Mar 14 2020

regehr added a comment to D76153: [SimplifyCFG] try branch-to-branch simplification sooner.

so this works but seems heavy-handed:
http://volta.cs.utah.edu:8080/z/w-L7Jw

Mar 14 2020, 9:06 AM · Restricted Project, Restricted Project

Feb 26 2020

regehr added a comment to D75226: [ReleaseNotes] Mention freeze instruction.

This seems good to me.

Feb 26 2020, 9:24 PM · Restricted Project

Feb 10 2020

regehr committed rG42ca012befa5: remove outdated comparison with other open-source c++ compilers (authored by regehr).
remove outdated comparison with other open-source c++ compilers
Feb 10 2020, 11:13 PM

Oct 4 2019

regehr committed rL373816: note that we missed taking minutes in July.
note that we missed taking minutes in July
Oct 4 2019, 9:53 PM

Jul 16 2019

regehr committed rL366239: add June 2019 minutes.
add June 2019 minutes
Jul 16 2019, 11:19 AM

Jul 7 2019

regehr added a comment to D64215: Add a transform pass to make the executable semantics of poison explicit in the IR.

I'll just add that we (my students and I) are interested in making the UB semantics easily pluggable / switchable. They'll still (almost certainly) be in C++, but we'd like to factor these out so at least they're cleanly separated and easily swapped out.

Jul 7 2019, 12:52 PM · Restricted Project

Jun 19 2019

regehr added a comment to D63423: [Diagnostics] Diagnose misused xor as pow.

I am also in the "be a bit conservative at first and see how things shake out" camp, but it's y'all doing the hard work here, not me :)

Jun 19 2019, 10:49 AM · Restricted Project, Restricted Project

Jun 17 2019

regehr added a comment to D63423: [Diagnostics] Diagnose misused xor as pow.

The only remaining question is, as your said, whether or not to diagnose xors in macros. @regerh @jfb ?

Jun 17 2019, 3:27 PM · Restricted Project, Restricted Project
regehr added a comment to D63423: [Diagnostics] Diagnose misused xor as pow.

Just wanted to say that I think I agree with the design choices here!

Jun 17 2019, 12:01 PM · Restricted Project, Restricted Project

May 15 2019

regehr committed rL360856: correct month now.
correct month now
May 15 2019, 9:51 PM
regehr committed rL360855: oops html typo.
oops html typo
May 15 2019, 9:51 PM
regehr committed rL360854: add may minutes.
add may minutes
May 15 2019, 9:51 PM

May 4 2019

regehr committed rL359972: oops html typo.
oops html typo
May 4 2019, 1:07 PM
regehr committed rL359971: add Nov 18, add notes about a few meetings that did not happen.
add Nov 18, add notes about a few meetings that did not happen
May 4 2019, 1:07 PM