- User Since
- Nov 23 2015, 1:58 PM (138 w, 4 d)
Wed, Jul 18
Remove the expensive check in favor of more conservative check that LD's chain has one use.
Using a temporary node avoids the intermediate loop issue, though a better temp node structure would be preferable.
But you're correct that any simplification to the AND obviates the need for fixup so let's us that.
Tue, Jul 17
Mon, Jul 16
Wed, Jul 11
Mon, Jul 9
Fri, Jul 6
Mon, Jul 2
@niravd would it be better to just do the full manual isel instead of trying to do it this way? Selecting the negate is easy. It just the variations of the shift that kind of ugly due to legacy vs BMI2 and BMI2 allowing load folding.
Wed, Jun 27
Jun 20 2018
Jun 19 2018
Jun 18 2018
Jun 15 2018
Thanks. I was unavoidably AFK for most of today. Relanded with fix in
Jun 14 2018
Jun 13 2018
Jun 11 2018
Minor clean up and address Noel's comments.
Jun 8 2018
Jun 7 2018
This also makes sense to me. Just to build on Sanjays comment, I think recasting DataValues as boolean is nicer.
Jun 5 2018
Jun 4 2018
Since we've only found 2 cases needing this extension and none requiring us to accept a larger set of expressions, I think we should defer any more work until we find such a case in the wild.
Jun 1 2018
May 31 2018
May 30 2018
Address Nick's comments and restrict this to change to V = E statements
May 18 2018
May 17 2018
Fix typo. Add big-endian ARM test that avoids llvm-objdump big-endian thumb issues.
May 16 2018
Address comments. The only pending comment is regards a big-endian example.
May 15 2018
May 14 2018
Generalize to non-byte fills as well.
May 13 2018
May 10 2018
May 9 2018
Add some explanatory text. Minor cleanup reducing number of handle construction/destructions.
May 8 2018
Unfortunately I can't share the test case, but something is definitely not O(N).
I suspect the underlying issue is no longer important, but for reference D31068 is a cleaned up version of this.
Robert, it looks like the state of the assembler file handling has shifted. Is the underlying issue still valid?
I think pruning this back is reasonable. The choice of 8192 was arbitrary. Have you checked larger sizes than 1024? Given it's a 5x increase (presumably) of the total runtime and the algorithm is O(N) I would expect to only need a 5x reduction and 2048 would be roughly equivalent.
May 7 2018
May 3 2018
Apr 30 2018
This patch looks fine modulo the comment made but that can be pushed into another patch.
Apr 27 2018
Apr 26 2018
The additional register pressure is unfortunate but is unrelated. Before I LGTM, I just wanted an additional agreement that the regression is vector-shuffle-variable tests isn't justification to delay.
Ping? I think we've a positive consesus. Anyone want to LGTM?
Apr 23 2018
Ping. Just a recap out the state of this patch:
Apr 19 2018
Disable assembler-information for parsing of inline assembly to maintain equivalence of object and assembly generation from llvm ir paths.
Apr 18 2018
Add tests to verify failure when layout-dependant cases happen.
Apr 11 2018
That said, modulo the extra bookkeeping costs for textual assembly additional checks for incomplete assemblers, there's no real reason why MCAsmStreamer and MCObjectStreamer are separate structures and it would be good to eventually merge them.
Why? What would you replace the MCStreamer interface virtual dispatch with? Would MCStreamer become the main implementation, with every method checking if (emitTextualAssembly) OS << ".foo";? That doesn't seem like a clear win.
It's documented that we output (.s) and I believe this is specifically so we are compatible with assemblers without sufficient preprocessor support. It may be reasonable to add a (.S) output but as it's been pointed out the textual semantics of the preprocessor are not suited for this and
error/warnings quality would almost certainly degrade.
Apr 3 2018
Apr 2 2018
For ease of reviewing the history reflects 3 stages of patches:
- [MC] Change AsmParser to leverage Assembler during evaluation.
- [MC] Allow MCAssembler to be constructed without all subcomponents. NFCI.
- [MC] Modify MCAsmStreamer to always build MCAssembler. NFCI.