dsanders (Daniel Sanders)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 19 2013, 3:30 PM (269 w, 6 d)

Recent Activity

Fri, Oct 19

dsanders added a comment to D52366: [tblgen][disasm] Separate encodings from instructions.

The encoding of an instruction includes encodings of its operands. How are you planning to implement separate encoder/decoder methods? Right now their names are all embedded into operand definitions.

Fri, Oct 19, 3:28 PM
dsanders added a comment to D52369: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction.

ping

Fri, Oct 19, 1:25 PM
dsanders added a comment to D52366: [tblgen][disasm] Separate encodings from instructions.

ping

Fri, Oct 19, 1:25 PM
dsanders added a comment to D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.

ping

Fri, Oct 19, 1:25 PM
dsanders created D53447: [adt] SparseBitVector::test() should be const.
Fri, Oct 19, 12:00 PM
dsanders added inline comments to D53416: [MIPS GlobalISel] Select sub.
Fri, Oct 19, 8:53 AM

Tue, Oct 16

dsanders accepted D53304: [GISel]: Allow Unused G_PHIs to be DCEd.

LGTM with a nit. Also we should consider whether we ought to be calling isSafeToMove() when we're not moving things.

Tue, Oct 16, 8:46 AM

Mon, Oct 15

dsanders added inline comments to D52947: [globalisel][combiner] Make the CombinerChangeObserver a MachineFunction::Delegate.
Mon, Oct 15, 3:03 PM

Fri, Oct 12

dsanders added a comment to D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.

ping

Fri, Oct 12, 9:41 AM
dsanders added a comment to D52366: [tblgen][disasm] Separate encodings from instructions.

ping

Fri, Oct 12, 9:41 AM
dsanders added a comment to D52369: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction.

ping

Fri, Oct 12, 9:41 AM
dsanders added a comment to D52947: [globalisel][combiner] Make the CombinerChangeObserver a MachineFunction::Delegate.

ping

Fri, Oct 12, 9:41 AM
dsanders added a comment to D52954: Annotate timeline in Instruments with passes and other timed regions..

ping

Fri, Oct 12, 9:40 AM
dsanders created D53203: Allow MemoryLocation to carry pre-existing knowledge to AA to elide expensive repeated checks.
Fri, Oct 12, 9:39 AM

Fri, Oct 5

dsanders created D52954: Annotate timeline in Instruments with passes and other timed regions..
Fri, Oct 5, 3:56 PM
dsanders created D52947: [globalisel][combiner] Make the CombinerChangeObserver a MachineFunction::Delegate.
Fri, Oct 5, 2:17 PM
dsanders accepted D52945: [GlobalIsel] Add llvm.invariant.start and llvm.invariant.end.

LGTM

Fri, Oct 5, 2:00 PM

Thu, Oct 4

dsanders committed rL343829: [globalisel][combine] When placing truncates, handle the case when the BB is….
[globalisel][combine] When placing truncates, handle the case when the BB is…
Thu, Oct 4, 4:49 PM
dsanders committed rL343821: [globalisel][combine] Fix a rare crash when encountering an instruction whose….
[globalisel][combine] Fix a rare crash when encountering an instruction whose…
Thu, Oct 4, 2:47 PM
dsanders committed rL343804: [globalisel][combine] Improve the truncate placement for the extending-loads….
[globalisel][combine] Improve the truncate placement for the extending-loads…
Thu, Oct 4, 11:46 AM
dsanders added a comment to D52803: [GISel]: Add support for CSEing continuously during GISel passes.

I haven't gone through the patch in full but I have a few comments based on the discussion we had today

Thu, Oct 4, 10:50 AM

Wed, Oct 3

dsanders committed rL343731: [machineverifier] Detect PHI's that are preceeded by non-PHI's.
[machineverifier] Detect PHI's that are preceeded by non-PHI's
Wed, Oct 3, 3:08 PM
dsanders committed rL343696: Correct implementation of -verify-machineinstrs such that it's still….
Correct implementation of -verify-machineinstrs such that it's still…
Wed, Oct 3, 9:34 AM
dsanders added a comment to rL343613: [globalisel][verifier] Run the MachineVerifier from IRTranslator onwards.

This should be fixed by r343696. The problem was that -verify-machineinstrs=0 didn't work correctly for EXPENSIVE_CHECKS

Wed, Oct 3, 9:34 AM
dsanders added a comment to rL343613: [globalisel][verifier] Run the MachineVerifier from IRTranslator onwards.

Sure, I've managed to reproduce it. I should have a fix shortly

Wed, Oct 3, 9:08 AM
dsanders committed rL343693: [globalisel][combines] Don't sink G_TRUNC down to use if that use is a G_PHI.
[globalisel][combines] Don't sink G_TRUNC down to use if that use is a G_PHI
Wed, Oct 3, 8:45 AM

Tue, Oct 2

dsanders committed rL343658: [globalisel] Fix one more missing Verifier pass from gisel-commandline-option.ll.
[globalisel] Fix one more missing Verifier pass from gisel-commandline-option.ll
Tue, Oct 2, 7:54 PM
dsanders committed rL343655: Add the missing new files from r343654.
Add the missing new files from r343654
Tue, Oct 2, 7:23 PM
dsanders committed rL343654: Re-commit: [globalisel] Add a combiner helpers for extending loads and use them….
Re-commit: [globalisel] Add a combiner helpers for extending loads and use them…
Tue, Oct 2, 7:15 PM
This revision was not accepted when it landed; it landed in state Needs Review.
Tue, Oct 2, 7:14 PM
dsanders reopened D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.
Tue, Oct 2, 2:55 PM
dsanders committed rL343633: [globalisel] Attempt to fix llvm-clang-x86_64-expensive-checks-win.
[globalisel] Attempt to fix llvm-clang-x86_64-expensive-checks-win
Tue, Oct 2, 1:54 PM
dsanders committed rL343613: [globalisel][verifier] Run the MachineVerifier from IRTranslator onwards.
[globalisel][verifier] Run the MachineVerifier from IRTranslator onwards
Tue, Oct 2, 10:59 AM

Mon, Oct 1

dsanders committed rL343546: Revert: r343521 and r343541: [globalisel] Add a combiner helpers for extending….
Revert: r343521 and r343541: [globalisel] Add a combiner helpers for extending…
Mon, Oct 1, 3:34 PM
dsanders committed rL343521: [globalisel] Add a combiner helpers for extending loads and use them in a pre….
[globalisel] Add a combiner helpers for extending loads and use them in a pre…
Mon, Oct 1, 11:58 AM
This revision was not accepted when it landed; it landed in state Needs Review.
Mon, Oct 1, 11:58 AM
dsanders added a comment to D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

I believe the only remaining issue on this was the compile-time impact. I've run CTMark* before and after and found that no tests were significantly different. The geomean was improved by 1.24%. I'm going to be working on the combiner infrastructure for the next few months so if there are any further issues that come up we can address them post-commit.

Mon, Oct 1, 11:32 AM
dsanders added a comment to D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.

ping

Mon, Oct 1, 11:25 AM
dsanders added a comment to D52366: [tblgen][disasm] Separate encodings from instructions.

ping

Mon, Oct 1, 11:25 AM
dsanders added a comment to D52369: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction.

ping

Mon, Oct 1, 11:25 AM

Thu, Sep 27

dsanders accepted D51147: [GISel]: Remove an incorrect assert in CallLowering.

Sorry for being so slow to get back to you on this. I hadn't realized I didn't say 'LGTM with a test case' or something to that effect.

Thu, Sep 27, 3:59 PM

Tue, Sep 25

dsanders committed rL342997: [globalisel][tblgen] Table optimization should consider the C++ code in C++….
[globalisel][tblgen] Table optimization should consider the C++ code in C++…
Tue, Sep 25, 11:03 AM

Sep 21 2018

dsanders created D52369: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction.
Sep 21 2018, 10:39 AM
dsanders added a dependent revision for D52366: [tblgen][disasm] Separate encodings from instructions: D52369: [tblgen][disasm] Allow multiple encodings to disassemble to the same instruction.
Sep 21 2018, 10:39 AM
dsanders created D52366: [tblgen][disasm] Separate encodings from instructions.
Sep 21 2018, 10:24 AM
dsanders updated the summary of D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.
Sep 21 2018, 10:18 AM
dsanders updated the diff for D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.

Add requirement for == and !=.
Add requirement for conversion to uint64_t. I'd like to remove this one again but it's currently necessary for field extraction
Remove conversion to bool. This proved to be very dangerous as it happily casts to any integral type via bool, silently truncating data.

Sep 21 2018, 10:14 AM
dsanders committed rL342744: [tblgen] Fix undefined behaviour when assigning integers to large bits<n>'s.
[tblgen] Fix undefined behaviour when assigning integers to large bits<n>'s
Sep 21 2018, 9:34 AM

Sep 17 2018

dsanders updated the diff for D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.

Correct a silly mistake in fieldFromInstruction(). The bit of code that
actually built the mask in the APInt-like case was missing.

Sep 17 2018, 6:57 PM

Sep 14 2018

dsanders created D52100: [tblgen] Allow FixedLenDecoderEmitter to use APInt-like objects as InsnType.
Sep 14 2018, 8:38 AM

Aug 31 2018

dsanders added a comment to D51489: [MIPS GlobalISel] Select icmp.

On MIPS 32 integer compare instruction are implicitly zero extended, meaning bitwise instructions (generated by legalizer) are superfluous. Where would be the best place to eliminate superfluous extends, perhaps upcoming prelegalize combiner ?

Aug 31 2018, 2:45 PM

Aug 23 2018

dsanders added a comment to D51147: [GISel]: Remove an incorrect assert in CallLowering.

If required I can add a test that IRTranslation for above doesn't crash and produces ANYEXT. I haven't added as this seemed overkill for removing an assert.

Aug 23 2018, 10:25 AM

Aug 21 2018

dsanders added a comment to D51005: [aarch64][mc] Don't lookup symbols when there is no symbol lookup callback.

Thanks

Aug 21 2018, 8:48 AM
dsanders committed rL340287: [aarch64][mc] Don't lookup symbols when there is no symbol lookup callback.
[aarch64][mc] Don't lookup symbols when there is no symbol lookup callback
Aug 21 2018, 8:48 AM
dsanders closed D51005: [aarch64][mc] Don't lookup symbols when there is no symbol lookup callback.
Aug 21 2018, 8:48 AM

Aug 20 2018

dsanders added a comment to D51005: [aarch64][mc] Don't lookup symbols when there is no symbol lookup callback.

This seems like an obvious fix but I don't know whether it was deliberately or accidentally mandatory.

Aug 20 2018, 3:24 PM
dsanders created D51005: [aarch64][mc] Don't lookup symbols when there is no symbol lookup callback.
Aug 20 2018, 3:22 PM

Aug 14 2018

dsanders accepted D50401: [GISel]: Add Opcodes for a few Libm Intrinsics.

This LGTM. I'm ok with the G_INTRINSIC_TRUNC spelling for the trunc() intrinsic but we should reach an agreement on it before committing.

Aug 14 2018, 3:44 PM
dsanders updated the diff for D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

Fixed the various nits

Aug 14 2018, 3:29 PM

Aug 12 2018

dsanders committed rL339528: [globalisel] Remove dead code from GlobalISelEmitter.
[globalisel] Remove dead code from GlobalISelEmitter
Aug 12 2018, 2:50 PM
dsanders closed D50611: Remove dead code from GlobalISelEmitter.
Aug 12 2018, 2:50 PM
dsanders accepted D50611: Remove dead code from GlobalISelEmitter.

LGTM. I'm surprised the buildbots didn't report this sooner.

Aug 12 2018, 9:02 AM

Aug 8 2018

dsanders added a comment to D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.

@dsanders I'm curious how you noticed this particular case - were you just going through perf traces, noticed the hit and manually worked out how the map was being poorly used?

Aug 8 2018, 9:31 AM

Aug 7 2018

dsanders committed rL339208: [tablegen] Improve performance of -gen-register-info by replacing barely….
[tablegen] Improve performance of -gen-register-info by replacing barely…
Aug 7 2018, 5:20 PM
dsanders closed D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.
Aug 7 2018, 5:20 PM
dsanders updated the summary of D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.
Aug 7 2018, 4:49 PM
dsanders updated the diff for D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.

Fixed most of the nits. Left out the one about iterating over DwarfRegNums since it would make the patch noisy.

Aug 7 2018, 1:53 PM

Aug 3 2018

dsanders updated the diff for D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.

Use std::move
Fix the comparison by pointer (but still avoid redundant use of LessRecordRegister since it's expensive compared to what we need)
Fix the lower_bound issue

Aug 3 2018, 7:11 PM
dsanders added inline comments to D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.
Aug 3 2018, 6:24 PM
dsanders created D50272: [tablegen] Improve performance of -gen-register-info by replacing barely-necessary std::map with a sorted vector.
Aug 3 2018, 2:33 PM

Jul 30 2018

dsanders added inline comments to D48600: [GISel]:Add Opcodes for CTLZ/CTTZ/CTPOP.
Jul 30 2018, 11:35 AM

Jul 9 2018

dsanders committed rL336589: [globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg.
[globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg
Jul 9 2018, 12:38 PM
dsanders closed D40092: [globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg.
Jul 9 2018, 12:38 PM

Jun 27 2018

dsanders committed rL335767: [globalisel][legalizer] Add AtomicOrdering to LegalityQuery and use it in….
[globalisel][legalizer] Add AtomicOrdering to LegalityQuery and use it in…
Jun 27 2018, 12:08 PM

Jun 26 2018

dsanders updated the diff for D40092: [globalisel][irtranslator] Add support for atomicrmw and (strong) cmpxchg.

Rebased to master. This is still ready to commit but it needs a corresponding change to ISel
to be able to land.

Jun 26 2018, 5:52 PM

Jun 25 2018

dsanders accepted D48534: [NFC] Prefer (void) to LLVM_ATTRIBUTE_UNUSED for unused var in GlobalISElemitter.cpp..

LGTM

Jun 25 2018, 9:57 AM

Jun 21 2018

dsanders added a comment to D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

Thanks Amara

Jun 21 2018, 8:56 AM

Jun 15 2018

dsanders committed rL334871: [globalisel][tablegen] Add support for C++ predicates on PatFrags and use it to….
[globalisel][tablegen] Add support for C++ predicates on PatFrags and use it to…
Jun 15 2018, 4:18 PM
dsanders accepted D48197: Avoid copying PrettyStackTrace messages an extra time on Apple platforms.

LGTM :-)

Jun 15 2018, 8:35 AM

Jun 8 2018

dsanders committed rL334337: [tablegen] Improve performance on *GenRegisterInfo.inc by replacing….
[tablegen] Improve performance on *GenRegisterInfo.inc by replacing…
Jun 8 2018, 4:16 PM
dsanders closed D47907: [tablegen] Improve performance on *GenRegisterInfo.inc by replacing SparseVector with BitVector. NFC.
Jun 8 2018, 4:16 PM

Jun 7 2018

dsanders created D47907: [tablegen] Improve performance on *GenRegisterInfo.inc by replacing SparseVector with BitVector. NFC.
Jun 7 2018, 2:27 PM
dsanders added inline comments to D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.
Jun 7 2018, 7:59 AM

May 30 2018

dsanders added inline comments to D47525: [TableGen] Make DAGInstruction own Pattern to avoid leaking it..
May 30 2018, 9:24 AM
dsanders accepted D47528: [Release Notes] Add release note for the new LLVM_DEBUG.

LGTM with a note about clang-format

May 30 2018, 8:29 AM
dsanders accepted D47463: [TableGen] Avoid leaking TreePatternNodes by using shared_ptr..

LGTM

May 30 2018, 8:11 AM
dsanders added inline comments to D47514: [Target][NFC] Simplify `AssemblerPredicate`..
May 30 2018, 8:10 AM

May 29 2018

dsanders added inline comments to D47425: [AArch64][GlobalISel] Zero-extend s1 values when returning..
May 29 2018, 3:07 PM
dsanders added inline comments to D47425: [AArch64][GlobalISel] Zero-extend s1 values when returning..
May 29 2018, 2:35 PM
dsanders updated the diff for D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

The full patch. The previous update was taken from the wrong machine and hadn't
been finished. Aside from not compiling, there was also a bug where additional
combine attempts would see G_SEXTLOAD mutate into G_LOAD (the anyext form).

May 29 2018, 12:21 PM
dsanders updated the diff for D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

Rewrite the patch such that the extends hoist up to the loads. The previous
patch had a couple problems that became clear on the bots:

  • The loads could be duplicated. This is a correctness problem for volatile loads but more generally is likely to harm performance.
  • The loads would sink to the extends without any hazard checking
May 29 2018, 10:42 AM
dsanders reopened D45543: [globalisel] Add a combiner helpers for extending loads and use them in a pre-legalize combiner for AArch64.

Re-opening as I'm about to update it with a revised version. The previous one broke several bots because it sank loads down to the extends

May 29 2018, 10:17 AM
dsanders added a comment to D47463: [TableGen] Avoid leaking TreePatternNodes by using shared_ptr..

Generally LGTM. I have a couple questions on this one though

May 29 2018, 8:21 AM
dsanders accepted D47461: [TableGen] Fix leaking of PhysRegInputs..

LGTM

May 29 2018, 8:06 AM
dsanders accepted D47462: [TableGen] Fix leaking synthesized registers..

LGTM

May 29 2018, 8:04 AM

May 8 2018

dsanders committed rL331846: Revert r331816 and r331820 - [globalisel] Add a combiner helpers for extending….
Revert r331816 and r331820 - [globalisel] Add a combiner helpers for extending…
May 8 2018, 10:04 PM
dsanders added a comment to D46620: Fix side effect in debug code.

Having the side-effect inside the assert is harmless since the #ifndef ensures the whole loop is only built when asserts are enabled and Index is only used by the assert. However, I agree it's weird to have side-effects inside the assert. Moving the increment out of the assert and into the for loop would LGTM

May 8 2018, 9:11 PM
dsanders added a comment to D46414: [GlobalISel][Legalizer] More concise and faster widenScalar, NFC.

Yes, I do have my doubts that the original implementation with sign extension is always correct, but it's NFC here anyway. I'm thinking to take a look at it at some point and see if I can come up with a breaking test case for that sign extend.

May 8 2018, 4:57 PM
dsanders committed rL331820: [globalisel] Correct r331816 to check the opcode before calling getOperand()..
[globalisel] Correct r331816 to check the opcode before calling getOperand().
May 8 2018, 4:02 PM
dsanders committed rL331816: [globalisel] Add a combiner helpers for extending loads and use them in a pre….
[globalisel] Add a combiner helpers for extending loads and use them in a pre…
May 8 2018, 3:30 PM