dsanders (Daniel Sanders)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 19 2013, 3:30 PM (192 w, 16 h)

Recent Activity

Today

dsanders added a comment to D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..

I decided to have a look at code coverage differences before committing this. This patch made no difference to the code coverage. On closer inspection it turns out beginFunction() isn't being executed so no rules with rule predicates can match. I'll take a look at this, maybe something from the rule-predicates patch didn't make it into the final commit.

I literally just ran into this while trying to enable TableGen for ARM. I'm wondering if it's really a good idea to have beginFunction in the first place. There's a related FIXME in TargetSubtargetInfo.h around getInstructionSelector. Maybe we should have an instruction selector per MachineFunction?

Tue, Apr 25, 3:58 AM
dsanders added a comment to D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..

I decided to have a look at code coverage differences before committing this. This patch made no difference to the code coverage. On closer inspection it turns out beginFunction() isn't being executed so no rules with rule predicates can match. I'll take a look at this, maybe something from the rule-predicates patch didn't make it into the final commit.

Tue, Apr 25, 2:46 AM

Yesterday

dsanders added a comment to D30299: [tablegen] Optionally format tablegen targets with clang-format.

Sorry for being slow to get back to this one. I've been prioritising the other patches.

Mon, Apr 24, 9:41 AM

Sun, Apr 23

dsanders added a comment to D32398: Bring back the ability opt out of padding zero-byte functions by not providing a nop instruction..

Hi Hans,

Sun, Apr 23, 7:06 AM
dsanders created D32398: Bring back the ability opt out of padding zero-byte functions by not providing a nop instruction..
Sun, Apr 23, 7:03 AM

Sat, Apr 22

dsanders committed rL301080: [globalisel][tablegen] Add support for RegisterOperand..
[globalisel][tablegen] Add support for RegisterOperand.
Sat, Apr 22, 9:06 AM
dsanders closed D32229: [globalisel][tablegen] Add support for RegisterOperand..
Sat, Apr 22, 9:06 AM
dsanders committed rL301079: [globalisel][tablegen] Revise API for ComplexPattern operands to improve….
[globalisel][tablegen] Revise API for ComplexPattern operands to improve…
Sat, Apr 22, 8:24 AM
dsanders closed D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..
Sat, Apr 22, 8:23 AM
dsanders committed rL301077: [globalisel][tablegen] Fix PR32733 by checking which instruction operands….
[globalisel][tablegen] Fix PR32733 by checking which instruction operands…
Sat, Apr 22, 7:44 AM

Fri, Apr 21

dsanders committed rL300993: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the….
[globalisel][tablegen] Import SelectionDAG's rule predicates and support the…
Fri, Apr 21, 9:13 AM
dsanders committed rL300978: Revert r300964 + r300970 - [globalisel][tablegen] Import SelectionDAG's rule….
Revert r300964 + r300970 - [globalisel][tablegen] Import SelectionDAG's rule…
Fri, Apr 21, 7:22 AM
dsanders committed rL300970: [globalisel][tablegen] Try again to fix builds on old MSVC's after r300964.
[globalisel][tablegen] Try again to fix builds on old MSVC's after r300964
Fri, Apr 21, 6:04 AM
dsanders committed rL300968: Revert: r300966 - [globalisel][tablegen] Attempt to fix builds on old MSVC's….
Revert: r300966 - [globalisel][tablegen] Attempt to fix builds on old MSVC's…
Fri, Apr 21, 5:21 AM
dsanders committed rL300966: [globalisel][tablegen] Attempt to fix builds on old MSVC's after r300964.
[globalisel][tablegen] Attempt to fix builds on old MSVC's after r300964
Fri, Apr 21, 4:42 AM
dsanders committed rL300964: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the….
[globalisel][tablegen] Import SelectionDAG's rule predicates and support the…
Fri, Apr 21, 3:40 AM
dsanders closed D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Fri, Apr 21, 3:40 AM
dsanders updated the summary of D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Fri, Apr 21, 3:39 AM
dsanders added inline comments to D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Fri, Apr 21, 3:38 AM
dsanders added inline comments to D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Fri, Apr 21, 12:57 AM

Thu, Apr 20

dsanders added inline comments to D32278: [globalisel][tablegen] Import rules containing intrinsic_wo_chain..
Thu, Apr 20, 11:47 AM
dsanders added a comment to D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..
In D32275#732358, @ab wrote:

LGTM

Thu, Apr 20, 11:47 AM
dsanders added inline comments to D32278: [globalisel][tablegen] Import rules containing intrinsic_wo_chain..
Thu, Apr 20, 11:06 AM
dsanders committed rL300847: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
[globalisel] Enable tracing the legalizer with --debug-only=legalize-mir
Thu, Apr 20, 9:15 AM
dsanders added inline comments to D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Thu, Apr 20, 9:01 AM
dsanders closed D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Thu, Apr 20, 8:58 AM
dsanders updated the diff for D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..

Rebase and fix nits

Thu, Apr 20, 8:01 AM
dsanders added a dependent revision for D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel.: D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Thu, Apr 20, 8:01 AM
dsanders added inline comments to D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..
Thu, Apr 20, 2:44 AM
dsanders added a comment to D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..

One thing to mention for this patch is that G_ICMP and G_FCMP are not included due to a difference in operand order between G_ICMP/G_FCMP in GlobalISel and setcc in SelectionDAG (predicate, lhs, rhs vs lhs, rhs, predicate). I can support those in a later patch by adding more information to GINodeEquiv or by changing G_ICMP/G_FCMP. I don't see a particularly strong argument either way on that point but I'm expecting to need to convert the predicate operand too so I'm leaning towards making GINodeEquiv more descriptive.

Thu, Apr 20, 2:15 AM
dsanders created D32278: [globalisel][tablegen] Import rules containing intrinsic_wo_chain..
Thu, Apr 20, 2:03 AM
dsanders added a dependent revision for D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support.: D32278: [globalisel][tablegen] Import rules containing intrinsic_wo_chain..
Thu, Apr 20, 2:03 AM
dsanders created D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..
Thu, Apr 20, 12:42 AM
dsanders added a dependent revision for D32229: [globalisel][tablegen] Add support for RegisterOperand.: D32275: [globalisel][tablegen] Add several GINodeEquiv's for operators that do not require additional support..
Thu, Apr 20, 12:42 AM

Wed, Apr 19

dsanders created D32229: [globalisel][tablegen] Add support for RegisterOperand..
Wed, Apr 19, 8:39 AM
dsanders added a dependent revision for D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility.: D32229: [globalisel][tablegen] Add support for RegisterOperand..
Wed, Apr 19, 8:39 AM
dsanders updated the diff for D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..

Remove placeholder operands since they're no longer needed.
Drop the Optional<> around ComplexRendererFn in favour of nullptr.
Remove the dependency on D31329.

Wed, Apr 19, 8:30 AM
dsanders removed a dependent revision for D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel.: D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Wed, Apr 19, 7:36 AM
dsanders removed a dependency for D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule.: D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel..
Wed, Apr 19, 7:36 AM
dsanders updated the diff for D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..

Tablegen-erate the PredicateBitSet definitions.

Wed, Apr 19, 7:35 AM

Tue, Apr 18

dsanders updated the diff for D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.

SmallVector -> number of new instructions emitted.

Tue, Apr 18, 7:30 AM
dsanders added inline comments to D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Tue, Apr 18, 3:58 AM
dsanders updated the diff for D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.

Refresh patch. No other changes made (see next comment).

Tue, Apr 18, 3:57 AM

Thu, Apr 13

dsanders added a comment to D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..

Forgot to reply to the inline comments

Thu, Apr 13, 4:53 AM
dsanders added a comment to D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..
In D31761#722903, @ab wrote:

I'm slightly worried that this makes the selector functions a bit harder to read, but this seems like a nice simplification otherwise.

One question: does this prevent us from ever selecting operands in-place? The previous implementation seems amenable to that (by only assigning the complex-pattern MO instead of adding them all to a new MI). But now we'd be forced to always append operands, right?

Thu, Apr 13, 4:51 AM
dsanders added a comment to D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
In D31418#722861, @ab wrote:

Does this really depend on D31329? Can you invert the dependency and put the tblgen emission bits in that patch?

Thu, Apr 13, 3:54 AM
dsanders committed rL300186: [globalisel][tablegen] Report more detail in some SelectionDAG import failures..
[globalisel][tablegen] Report more detail in some SelectionDAG import failures.
Thu, Apr 13, 2:58 AM
dsanders closed D31325: [globalisel][tablegen] Report more detail in some SelectionDAG import failures. NFC.
Thu, Apr 13, 2:58 AM

Wed, Apr 12

dsanders committed rL300037: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps….
[globalisel][tablegen] Add experimental support for OperandWithDefaultOps…
Wed, Apr 12, 1:35 AM
dsanders closed D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand by committing rL300037: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps….
Wed, Apr 12, 1:35 AM
dsanders closed D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand.
Wed, Apr 12, 1:35 AM

Thu, Apr 6

dsanders created D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..
Thu, Apr 6, 7:20 AM
dsanders added a dependent revision for D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule.: D31761: [globalisel][tablegen] Revise API for ComplexPattern operands to improve flexibility..
Thu, Apr 6, 7:20 AM
dsanders updated the diff for D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..

Refresh

Thu, Apr 6, 6:10 AM
dsanders updated the diff for D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel..

Refresh

Thu, Apr 6, 6:01 AM
dsanders added inline comments to D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Thu, Apr 6, 5:52 AM
dsanders updated the diff for D31325: [globalisel][tablegen] Report more detail in some SelectionDAG import failures. NFC.

Update to account for nits

Thu, Apr 6, 4:25 AM
dsanders updated the diff for D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand.

Add 2-default-operand test case
Check for too many operands
Nits

Thu, Apr 6, 3:59 AM
dsanders created D31750: [globalisel] Enable tracing the legalizer with --debug-only=legalize-mir.
Thu, Apr 6, 3:31 AM
dsanders committed rL299637: [globalisel][tablegen] Move <Target>InstructionSelector declarations to….
[globalisel][tablegen] Move <Target>InstructionSelector declarations to…
Thu, Apr 6, 3:02 AM
dsanders closed D30998: [globalisel][tablegen] Move <Target>InstructionSelector declarations to anonymous namespaces by committing rL299637: [globalisel][tablegen] Move <Target>InstructionSelector declarations to….
Thu, Apr 6, 3:02 AM
dsanders retitled D30998: [globalisel][tablegen] Move <Target>InstructionSelector declarations to anonymous namespaces from [globalisel][tablegen] Handle LLVM_BUILD_GLOBAL_ISEL=OFF by emitting an empty tablegen-erated file. to [globalisel][tablegen] Move <Target>InstructionSelector declarations to anonymous namespaces.
Thu, Apr 6, 3:00 AM

Wed, Apr 5

dsanders committed rL299538: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..
[globalisel][tablegen] Fix patterns involving multiple ComplexPatterns.
Wed, Apr 5, 6:26 AM
dsanders closed D31054: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..
Wed, Apr 5, 6:26 AM
dsanders closed D31054: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns. by committing rL299538: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..
Wed, Apr 5, 6:26 AM

Tue, Apr 4

dsanders committed rL299436: [globalisel][tablegen] Fix non-determinism introduced in r299430..
[globalisel][tablegen] Fix non-determinism introduced in r299430.
Tue, Apr 4, 7:39 AM
dsanders committed rL299433: [globalisel][tablegen] Try to make MSVC happy with r299430.
[globalisel][tablegen] Try to make MSVC happy with r299430
Tue, Apr 4, 7:04 AM
dsanders updated the diff for D31054: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..

Rebase on to trunk

Tue, Apr 4, 6:52 AM
dsanders updated the diff for D31054: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..

Refresh before commit

Tue, Apr 4, 6:42 AM
dsanders added inline comments to D30539: [tablegen][globalisel] Add support for nested instruction matching..
Tue, Apr 4, 6:39 AM
dsanders committed rL299430: [tablegen][globalisel] Add support for nested instruction matching..
[tablegen][globalisel] Add support for nested instruction matching.
Tue, Apr 4, 6:38 AM
dsanders closed D30539: [tablegen][globalisel] Add support for nested instruction matching. by committing rL299430: [tablegen][globalisel] Add support for nested instruction matching..
Tue, Apr 4, 6:37 AM
dsanders added inline comments to D30539: [tablegen][globalisel] Add support for nested instruction matching..
Tue, Apr 4, 5:12 AM
dsanders added a comment to D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand.
In D31135#715631, @ab wrote:

This seems to only add optional uses, what about OptionalDefOperand? (I'm fine with "we don't need that", but I don't see anything that would make the import fail)

Tue, Apr 4, 2:07 AM

Fri, Mar 31

dsanders added inline comments to D30539: [tablegen][globalisel] Add support for nested instruction matching..
Fri, Mar 31, 8:31 AM

Thu, Mar 30

dsanders updated the diff for D30998: [globalisel][tablegen] Move <Target>InstructionSelector declarations to anonymous namespaces.

Rewrote to move the class declaration into the .cpp.

Thu, Mar 30, 7:06 AM
dsanders committed rL299063: [globalisel][tablegen] Change Expected<bool> to Error and rename functions..
[globalisel][tablegen] Change Expected<bool> to Error and rename functions.
Thu, Mar 30, 2:48 AM

Wed, Mar 29

dsanders added a comment to D30536: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking approach. NFC.
In D30536#713232, @ab wrote:

If a function always returns an Error, what does it return on success? It would be strange to have an Error that is not an error.

It returns Error::success(). The name is somewhat awkward, but think of it as a replacement for the old-style 'int' return values, or c++ std::error_code. There are a few examples in http://llvm.org/docs/ProgrammersManual.html#recoverable-errors.

Wed, Mar 29, 10:49 AM
dsanders committed rL299001: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking….
[tablegen][globalisel] Convert the SelectionDAG importer to a tree walking…
Wed, Mar 29, 8:49 AM
dsanders closed D30536: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking approach. NFC by committing rL299001: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking….
Wed, Mar 29, 8:49 AM

Tue, Mar 28

dsanders updated the diff for D30536: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking approach. NFC.

Fold away the TrueOrError variables.

Tue, Mar 28, 7:07 AM
dsanders added inline comments to D30536: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking approach. NFC.
Tue, Mar 28, 7:05 AM
dsanders added a comment to D30998: [globalisel][tablegen] Move <Target>InstructionSelector declarations to anonymous namespaces.

That sounds good to me. Can we tack it onto the end of the main patch series though? Some of those patches change <Target>InstructionSelector and I'd like to avoid resolving the conflicts if I don't need to.

Tue, Mar 28, 5:46 AM
dsanders added a comment to D30299: [tablegen] Optionally format tablegen targets with clang-format.

My ideal would be version of raw_ostream that allows clang-format style formatting to be switched on and off at will but that doesn't seem to be available and it would require llvm-tblgen to link to (probably old) clang libraries.

Tue, Mar 28, 5:40 AM
dsanders added a dependent revision for D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel.: D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Tue, Mar 28, 3:50 AM
dsanders created D31418: [globalisel][tablegen] Import SelectionDAG's rule predicates and support the equivalent in GIRule..
Tue, Mar 28, 3:50 AM

Mon, Mar 27

dsanders committed rL298844: Correct OptionCategoryCompare() in the command line library..
Correct OptionCategoryCompare() in the command line library.
Mon, Mar 27, 6:55 AM
dsanders closed D30996: Correct OptionCategoryCompare() in the command line library..
Mon, Mar 27, 6:55 AM
dsanders committed rL298843: [tablegen] Use categories on options that only matter to one emitter..
[tablegen] Use categories on options that only matter to one emitter.
Mon, Mar 27, 6:27 AM
dsanders closed D30995: [tablegen] Use categories on options that only matter to one emitter..
Mon, Mar 27, 6:27 AM

Mar 24 2017

dsanders added a dependent revision for D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand: D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel..
Mar 24 2017, 6:40 AM
dsanders added a dependency for D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel.: D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand.
Mar 24 2017, 6:40 AM
dsanders created D31329: [globalisel][tablegen] Make it possible to declare rules directly in GlobalISel..
Mar 24 2017, 6:40 AM
dsanders created D31325: [globalisel][tablegen] Report more detail in some SelectionDAG import failures. NFC.
Mar 24 2017, 5:03 AM
dsanders updated the diff for D31054: [globalisel][tablegen] Fix patterns involving multiple ComplexPatterns..

Refresh and ping

Mar 24 2017, 4:56 AM
dsanders updated the summary of D30539: [tablegen][globalisel] Add support for nested instruction matching..
Mar 24 2017, 4:40 AM
dsanders updated the diff for D30539: [tablegen][globalisel] Add support for nested instruction matching..

Refresh and ping.
No longer selects code for dead intermediates due to r298224

Mar 24 2017, 4:37 AM
dsanders updated the diff for D30536: [tablegen][globalisel] Convert the SelectionDAG importer to a tree walking approach. NFC.

Refresh and ping. This patch is the main bottleneck for a lot of the tablegen work.

Mar 24 2017, 4:26 AM
dsanders added a comment to D30299: [tablegen] Optionally format tablegen targets with clang-format.

ping

Mar 24 2017, 3:13 AM
dsanders updated the diff for D31135: [globalisel][tablegen] Add experimental support for OperandWithDefaultOps, PredicateOperand, and OptionalDefOperand.

Add the test case without accidentally removing the rest of the patch.

Mar 24 2017, 3:11 AM