Page MenuHomePhabricator

Please use GitHub pull requests for new patches. Avoid migrating existing patches. Phabricator shutdown timeline

Feed Advanced Search

Jul 31 2023

Joe added a comment to D150851: [LoopVectorize] Vectorize select-cmp reduction pattern for increasing integer induction variable.
  1. Only target induction variables that determine the branch condition in the loop latch. With this approach, we can indirectly determine whether the induction variable is signed using loop guards, and directly perform vectorization according to the signed overflow is undefined behavior.

@Mel-Chen I like this option. But I don't think I understand fully - what's the purposes of determining whether the induction variable is signed?

We need to determine whether we should use umax or smax in the middle.block. Currently, we have only implemented smax because the application of {1,+,step} unsigned induction variables is relatively uncommon.

Jul 31 2023, 3:12 AM · Restricted Project, Restricted Project

Jul 28 2023

Joe added a comment to D150851: [LoopVectorize] Vectorize select-cmp reduction pattern for increasing integer induction variable.
  1. Only target induction variables that determine the branch condition in the loop latch. With this approach, we can indirectly determine whether the induction variable is signed using loop guards, and directly perform vectorization according to the signed overflow is undefined behavior.
Jul 28 2023, 8:18 AM · Restricted Project, Restricted Project

Jul 24 2023

Joe updated the diff for D155294: [Driver][RISCV] Find baremetal multilibs using YAML for GNU toolchain.

Add default ABI to multilib flags if none supplied

Jul 24 2023, 2:51 AM · Restricted Project, Restricted Project
Joe added a comment to D155294: [Driver][RISCV] Find baremetal multilibs using YAML for GNU toolchain.

Theoretically, I think this matching of multilibs could be done without the need for multilib.yaml, but it is indeed much easier considering the logic is already there.

Jul 24 2023, 2:12 AM · Restricted Project, Restricted Project

Jul 14 2023

Joe requested review of D155294: [Driver][RISCV] Find baremetal multilibs using YAML for GNU toolchain.
Jul 14 2023, 7:36 AM · Restricted Project, Restricted Project

Jun 8 2023

Joe added inline comments to D137417: [RISCV] Support for mapping symbol in RISCV..
Jun 8 2023, 6:52 AM · Restricted Project, Restricted Project
Joe added inline comments to D137417: [RISCV] Support for mapping symbol in RISCV..
Jun 8 2023, 6:49 AM · Restricted Project, Restricted Project

Jun 7 2023

Joe added a comment to D137417: [RISCV] Support for mapping symbol in RISCV..

The mapping symbol seems to be getting stripped out at the linker stage (either ld or lld), but I'm not sure why. Will continue to look into it.

Jun 7 2023, 9:42 AM · Restricted Project, Restricted Project

Mar 8 2023

Joe added inline comments to D143673: [lld][RISCV] Implement GP relaxation for R_RISCV_HI20/R_RISCV_LO12_I/R_RISCV_LO12_S..
Mar 8 2023, 9:23 AM · Restricted Project, Restricted Project
Joe added inline comments to D143673: [lld][RISCV] Implement GP relaxation for R_RISCV_HI20/R_RISCV_LO12_I/R_RISCV_LO12_S..
Mar 8 2023, 8:32 AM · Restricted Project, Restricted Project

Feb 2 2023

Joe added a comment to D142933: [Driver] Add -print-multi-flags-experimental option.

Thanks for explaining. I found that when I was writing a regex to match flags it was helpful to have a part of the string I could be sure would be there to avoid matching the wrong type of flag, and march= helped with that. I also worry that names from different types of flags could clash without some kind of namespacing.

Feb 2 2023, 6:15 AM · Restricted Project, Restricted Project
Joe added a comment to D142933: [Driver] Add -print-multi-flags-experimental option.

The main trouble I had was at that point we don't have a reference to the ToolChain, so calling getMultiSelectionFlags was not possible. [...] I'm not sure what the solution here is.

I see two options:

  1. Split getMultiSelectionFlags into needs-ToolChain and doesn't-need-ToolChain parts, with the former calling the latter. From Gnu.cpp, call the latter, with the limitation that it can use fewer flags.
  2. Pass a ToolChain to the Gnu.cpp functions.
Feb 2 2023, 2:23 AM · Restricted Project, Restricted Project

Feb 1 2023

Joe added a comment to D142933: [Driver] Add -print-multi-flags-experimental option.

So again, I took these patches for a spin with RISC-V. As I mentioned before, I was using a GCC installation, so the multilib selection happens inside Gnu.cpp (findRISCVBareMetalMultilibs). The main trouble I had was at that point we don't have a reference to the ToolChain, so calling getMultiSelectionFlags was not possible. I had a go at making this function static, and it was mostly fine as you could just pass in the Triple and Driver, however getSanitizerArgs was not possible. I'm not sure what the solution here is.

Feb 1 2023, 9:09 AM · Restricted Project, Restricted Project
Joe added a comment to D140959: RFC: Multilib prototype.

FWIW I tried this patch out with RISC-V multilibs, and it works a treat. It solves the multilib reuse problem and relaxes the order of non-standard extensions. I did have to copy some of the logic from BareMetal.cpp to Gnu.cpp as was using a GCC installation.

Feb 1 2023, 1:47 AM · Restricted Project, Restricted Project

Mar 21 2022

Joe updated the diff for D120908: [FuncSpec] Enable function specialize for a constant range of arguments.

Updated diff. Now a very small change.

Mar 21 2022, 8:00 AM · Restricted Project, Restricted Project
Joe added a comment to D120136: [ConstantRange] Construct constant range from xor operation.

Ping

Mar 21 2022, 7:42 AM · Restricted Project, Restricted Project

Mar 7 2022

Herald added a project to D120136: [ConstantRange] Construct constant range from xor operation: Restricted Project.

Ping

Mar 7 2022, 2:03 AM · Restricted Project, Restricted Project

Mar 4 2022

Joe added a comment to D120908: [FuncSpec] Enable function specialize for a constant range of arguments.

My understanding is that function specialization of such constant arguments is controlled by the option -function-specialization-for-literal-constant. That is disabled by default as it increases compilation times. I measured how it affects instruction count using perf when compiling the llvm test suite. It was generally neutral except for the benchmark SPASS which was regressed by 4%.

Mar 4 2022, 1:42 AM · Restricted Project, Restricted Project

Mar 3 2022

Joe requested review of D120908: [FuncSpec] Enable function specialize for a constant range of arguments.
Mar 3 2022, 7:18 AM · Restricted Project, Restricted Project

Feb 21 2022

Joe added inline comments to D120136: [ConstantRange] Construct constant range from xor operation.
Feb 21 2022, 5:04 AM · Restricted Project, Restricted Project
Joe updated the diff for D120136: [ConstantRange] Construct constant range from xor operation.

Add exhaustive correctness test.
Also remove signage test in binaryXor, as the common bits would be 0 anyway, thus creating a full set regardless.

Feb 21 2022, 5:04 AM · Restricted Project, Restricted Project

Feb 18 2022

Joe updated subscribers of D120136: [ConstantRange] Construct constant range from xor operation.
Feb 18 2022, 8:45 AM · Restricted Project, Restricted Project
Joe retitled D120136: [ConstantRange] Construct constant range from xor operation from [VRP] Construct constant range from xor operation to [ConstantRange] Construct constant range from xor operation.
Feb 18 2022, 8:45 AM · Restricted Project, Restricted Project
Joe updated the diff for D120136: [ConstantRange] Construct constant range from xor operation.
Feb 18 2022, 8:41 AM · Restricted Project, Restricted Project
Joe updated the diff for D120136: [ConstantRange] Construct constant range from xor operation.

Fix malformed diff.

Feb 18 2022, 8:39 AM · Restricted Project, Restricted Project
Joe requested review of D120136: [ConstantRange] Construct constant range from xor operation.
Feb 18 2022, 8:36 AM · Restricted Project, Restricted Project

Apr 13 2021

Joe added inline comments to D93838: [SCCP] Add Function Specialization pass.
Apr 13 2021, 6:11 AM · Restricted Project, Restricted Project
Joe added inline comments to D93838: [SCCP] Add Function Specialization pass.
Apr 13 2021, 4:33 AM · Restricted Project, Restricted Project

Apr 7 2021

Joe added inline comments to D93838: [SCCP] Add Function Specialization pass.
Apr 7 2021, 9:29 AM · Restricted Project, Restricted Project

Apr 8 2020

Joe added a comment to D76354: [RISCV][GlobalISel] Legalize types for ALU operations.

LGTM, but probably wait for someone more experienced to upvote :)

Apr 8 2020, 6:27 AM · Restricted Project, Restricted Project

Mar 20 2020

Joe added inline comments to D74977: [RISCV][GlobalISel] Add lowerFormalArguments for calling convention.
Mar 20 2020, 8:05 AM · Restricted Project, Restricted Project
Joe added a comment to D76354: [RISCV][GlobalISel] Legalize types for ALU operations.

What about G_OR and G_XOR? Is there a reason why they're not listed?

Mar 20 2020, 7:32 AM · Restricted Project, Restricted Project

Mar 17 2020

Joe added a comment to D75023: [RISCV][GlobalISel] Add lowerCall for calling convention.

If you're supporting a pointer value return type, should there be a test for this?

Mar 17 2020, 5:06 AM · Restricted Project, Restricted Project

Dec 2 2019

Joe updated the diff for D68328: Fix occurrences that size and range of pointers are assumed to be the same..

Rebased on current head.

Dec 2 2019, 3:09 AM · Restricted Project, Restricted Project

Nov 25 2019

Joe added a comment to D68328: Fix occurrences that size and range of pointers are assumed to be the same..

LGTM,
Thanks

Nov 25 2019, 1:45 AM · Restricted Project, Restricted Project

Nov 14 2019

Joe updated the diff for D68328: Fix occurrences that size and range of pointers are assumed to be the same..

Addressed @igorb 's comments.

Nov 14 2019, 10:06 AM · Restricted Project, Restricted Project

Nov 13 2019

Joe updated the diff for D68328: Fix occurrences that size and range of pointers are assumed to be the same..

Updated diff:

Nov 13 2019, 6:26 AM · Restricted Project, Restricted Project

Nov 7 2019

Joe added a comment to D68328: Fix occurrences that size and range of pointers are assumed to be the same..

After further review and testing, I have found that changing the effective SCEV type to be the pointer index type does not work. Though neither does it work when assumed to be pointer size. In many places, these are assumed to be the same. I'm unsure of which way to go with this. Do I force effective SCEV type to be the pointer size and enforce this, or change it to be index size and enforce this?

Nov 7 2019, 8:09 AM · Restricted Project, Restricted Project

Nov 4 2019

Joe added a comment to D68328: Fix occurrences that size and range of pointers are assumed to be the same..

Ping

Nov 4 2019, 1:44 AM · Restricted Project, Restricted Project

Oct 4 2019

Joe added inline comments to D68328: Fix occurrences that size and range of pointers are assumed to be the same..
Oct 4 2019, 7:26 AM · Restricted Project, Restricted Project

Oct 2 2019

Joe added inline comments to D68328: Fix occurrences that size and range of pointers are assumed to be the same..
Oct 2 2019, 6:49 AM · Restricted Project, Restricted Project
Joe created D68328: Fix occurrences that size and range of pointers are assumed to be the same..
Oct 2 2019, 3:35 AM · Restricted Project, Restricted Project
Joe retitled D68328: Fix occurrences that size and range of pointers are assumed to be the same. from Fix occurances that size and range of pointers are assumed to be the same. to Fix occurrences that size and range of pointers are assumed to be the same..
Oct 2 2019, 3:35 AM · Restricted Project, Restricted Project