- User Since
- Oct 9 2015, 4:06 AM (154 w, 1 d)
Thu, Sep 20
Yes, thank you, this is clearer. I'm fine with the change, but please do address Matt's comments.
Tue, Sep 18
Good to hear the new DA can handle this. We need lowered switches for the control flow lowering anyway, though, so we may as well do it this way.
Okay, thanks for the explanation, that seems fair.
Mon, Sep 17
Adding @tpr as a subscriber due to the (admittedly maybe a bit indirect) MsgPack connection.
Thanks, this mostly looks good to me. Looks like this may be running into a serious limitation of the ISel infrastructure with commutativity / associativity, but it makes sense to land this patch without addressing it. I do have one last question.
This still needs to be adjusted for D52087, and I have one minor comment, but mostly LGTM.
Fri, Sep 14
Thu, Sep 13
- Cleaned up the pattern condition to take inline constants into account
- Add tests for inline constants and uniform values ending up in VGPRs
- update_llc-ify the tests
What about sitofp?
Wed, Sep 12
As for the testcases, what about vectorized multiplicaton, i.e.:
%vec1 = load <8 x i4>, ... vec2 = load <8 x i4>, ... %ext1 = zext <8 x i4> %vec1 to <8 x i32> %ext2 = zext <8 x i4> %vec2 to <8 x i32> %mul = mul nuw nsw <8 x i32> %ext1, %ext2 ... then extractelement and add up the result ... or possibly the same thing without the zext
The TableGen itself looks good to me, except for one nitpick (inline).
Thanks! Some small issues let, and please also add a test case for the "simplifyDemanded" implementation.
One nitpick, apart from that LGTM.
Mon, Sep 10
Fri, Aug 31
This patch should already add the tests for the new analysis, shouldn't it?
Thu, Aug 30
Thanks, the TableGen part looks good to me. I can't speak for the actual RISC-V changes.
Wed, Aug 29
It is interesting to note though that clang-format changed so much in this file.
Tue, Aug 28
Guard sanity check with EXPENSIVE_CHECKS
Hi Simon, can you please confirm that this is still the latest version of this change? There were some edits to D50433 since the last comment here...
Thanks for the changes.
I'm not very familiar with this code either, but the change looks reasonable to me.
That sounds like the way to go is testing just the NUW bit here in SelectSMRDOffset?
Mon, Aug 27
That would be good, yeah. Note here it's not so much a case of preserving NUW as it is of deducing as much NUW as possible from getelementptrs.
Looking at SelectionDAGBuilder::visitGetElementPtr, nuw is set under certain conditions for inbounds getelementptr. I suspect we should be able to make most GEPs inbounds in Mesa - it just means that we never, not even temporarily, try to take addresses outside of properly allocated memory objects (buffers, arrays of descriptors).
Right, that matches my understanding: the SMRD/SMEM instruction does a 64-bit addition, so if the 32-bit (add X, imm) were to have an unsigned wraparound, moving it into the immediate of the SMRD/SMEM would remove the wraparound and therefore be incorrect.
Nice catch. One suggestion for improvement, apart from that LGTM.
Fri, Aug 24
Thanks. I don't see a test that actually sets glc, please add one before committing.
Aug 23 2018
The operand name / encoding bits in TableGen should really be changed as well to indicate the overload between R128 and A16.
Please do a style pass to capitalize all variable names according to the LLVM coding style.
I find it a bit concerning that we seem to have different semantics for these instructions depending on the environment.
Aug 22 2018
Always do the sanity check in debug builds.
Aug 13 2018
Aug 8 2018
Some smaller nitpicks, but mostly looks good to me!
Jul 31 2018
Agreed that LCSSA doesn't help either.
Jul 30 2018
Thanks for doing this.
As far as I can tell, there are four kinds of operands when it comes to fixed-length encoding / decoding:
What's the status of this patch?
Jul 27 2018
This makes sense to me. One nit-pick, apart from that LGTM.
I don't think doing this as an IR pass has any advantage, so this is fine.
Jun 25 2018
Factor out SIInstrInfo::hasUnwantedEffectsWhenEXECEmpty
Jun 21 2018
Jun 19 2018
Preserve the case in preprocessor guards for GenericEnum and GenericTable.
Jun 18 2018
Ping. Does this look alright?