Page MenuHomePhabricator

hgreving (Hendrik Greving)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 31 2020, 1:07 PM (126 w, 5 d)

Recent Activity

Jun 6 2022

hgreving committed rGa43d25734a46: [ModuloSchedule] Fix terminator update when peeling. (authored by hgreving).
[ModuloSchedule] Fix terminator update when peeling.
Jun 6 2022, 12:53 PM · Restricted Project, Restricted Project
hgreving closed D126386: [ModuloSchedule] Fix terminator update when peeling..
Jun 6 2022, 12:52 PM · Restricted Project, Restricted Project
hgreving removed reviewers for D126386: [ModuloSchedule] Fix terminator update when peeling.: aeubanks, dpenry.
Jun 6 2022, 12:50 PM · Restricted Project, Restricted Project

Jun 2 2022

hgreving added a comment to D126386: [ModuloSchedule] Fix terminator update when peeling..

Added more reviewers with history of the modulo expansion code, since I believe there is no feasible test for upstream targets, see commit message.

Jun 2 2022, 10:49 AM · Restricted Project, Restricted Project
hgreving added a reviewer for D126386: [ModuloSchedule] Fix terminator update when peeling.: dpenry.
Jun 2 2022, 10:46 AM · Restricted Project, Restricted Project

Jun 1 2022

hgreving committed rGa92ed167f2c9: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4. (authored by hgreving).
[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.
Jun 1 2022, 6:06 PM · Restricted Project, Restricted Project
hgreving added a comment to D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Reverted the patch in repo and re-pushing again. The only difference of the new push is s/enum_seq_inclusive/enum_seq/ in TargetLoweringBase.cpp.

Jun 1 2022, 5:54 PM · Restricted Project, Restricted Project
hgreving added a reverting change for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.: rGe9d05cc7d82c: Revert "[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.".
Jun 1 2022, 1:29 PM · Restricted Project, Restricted Project
hgreving added a reverting change for rG430ac5c3029c: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.: rGe9d05cc7d82c: Revert "[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.".
Jun 1 2022, 1:29 PM · Restricted Project, Restricted Project
hgreving committed rGe9d05cc7d82c: Revert "[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4." (authored by hgreving).
Revert "[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4."
Jun 1 2022, 1:29 PM · Restricted Project, Restricted Project
hgreving committed rG430ac5c3029c: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4. (authored by hgreving).
[ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.
Jun 1 2022, 12:48 PM · Restricted Project, Restricted Project
hgreving closed D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
Jun 1 2022, 12:48 PM · Restricted Project, Restricted Project
hgreving updated the summary of D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
Jun 1 2022, 11:53 AM · Restricted Project, Restricted Project
hgreving removed reviewers for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.: jmolloy, ThomasRaoux.
Jun 1 2022, 11:46 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Rebase only.

Jun 1 2022, 11:46 AM · Restricted Project, Restricted Project

May 26 2022

hgreving added a reviewer for D126386: [ModuloSchedule] Fix terminator update when peeling.: aeubanks.
May 26 2022, 4:58 PM · Restricted Project, Restricted Project

May 25 2022

hgreving updated the summary of D126386: [ModuloSchedule] Fix terminator update when peeling..
May 25 2022, 2:13 PM · Restricted Project, Restricted Project
hgreving added a comment to D126386: [ModuloSchedule] Fix terminator update when peeling..

There are a few lit failures, I will look at those first.

May 25 2022, 11:43 AM · Restricted Project, Restricted Project
hgreving added reviewers for D126386: [ModuloSchedule] Fix terminator update when peeling.: jmolloy, ThomasRaoux.
May 25 2022, 11:43 AM · Restricted Project, Restricted Project
hgreving updated the diff for D126386: [ModuloSchedule] Fix terminator update when peeling..

Updates patch. Let's do it straight forward and support cases where no branch is needed to the fallthrough.

May 25 2022, 11:43 AM · Restricted Project, Restricted Project
hgreving added a comment to D126386: [ModuloSchedule] Fix terminator update when peeling..

There are a few lit failures, I will look at those first.

May 25 2022, 8:30 AM · Restricted Project, Restricted Project
hgreving removed reviewers for D126386: [ModuloSchedule] Fix terminator update when peeling.: ThomasRaoux, jmolloy.
May 25 2022, 8:30 AM · Restricted Project, Restricted Project
hgreving requested review of D126386: [ModuloSchedule] Fix terminator update when peeling..
May 25 2022, 8:22 AM · Restricted Project, Restricted Project

May 24 2022

hgreving requested review of D126307: [BasicBlockUtils] Amend test for loop metadata..
May 24 2022, 10:15 AM · Restricted Project, Restricted Project
hgreving added a comment to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

LGTM. Please wait for @fhahn LGTM as well.

It looks like the patch was landed but the commit message seems a bit out-of-sync with the code.it

May 24 2022, 7:06 AM · Restricted Project, Restricted Project

May 23 2022

hgreving committed rG4f93d5cc1d47: [BasicBlockUtils] Do not move loop metadata if outer loop header. (authored by hgreving).
[BasicBlockUtils] Do not move loop metadata if outer loop header.
May 23 2022, 4:41 PM · Restricted Project, Restricted Project
hgreving committed rGe5d8fb690e35: [BasicBlockUtils] Add corner case test for loop metadata. (authored by hgreving).
[BasicBlockUtils] Add corner case test for loop metadata.
May 23 2022, 4:41 PM · Restricted Project, Restricted Project
hgreving closed D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 23 2022, 4:41 PM · Restricted Project, Restricted Project
hgreving closed D125696: [BasicBlockUtils] Add corner case test for loop metadata..
May 23 2022, 4:41 PM · Restricted Project, Restricted Project
hgreving added a comment to D125696: [BasicBlockUtils] Add corner case test for loop metadata..

precommitting a test for an approved patch generally shouldn't require review

May 23 2022, 4:19 PM · Restricted Project, Restricted Project
hgreving added a reviewer for D125696: [BasicBlockUtils] Add corner case test for loop metadata.: reames.
May 23 2022, 2:09 PM · Restricted Project, Restricted Project
hgreving added a reviewer for D125696: [BasicBlockUtils] Add corner case test for loop metadata.: Meinersbur.
May 23 2022, 2:08 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 23 2022, 1:12 PM · Restricted Project, Restricted Project
hgreving added inline comments to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 23 2022, 7:32 AM · Restricted Project, Restricted Project

May 20 2022

hgreving added a comment to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

Friendly ping on this review.

May 20 2022, 3:47 PM · Restricted Project, Restricted Project
hgreving added a comment to D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Friendly ping on this review.

May 20 2022, 3:47 PM · Restricted Project, Restricted Project
hgreving added a comment to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 20 2022, 3:47 PM · Restricted Project, Restricted Project

May 16 2022

hgreving added a comment to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

Thanks for the patch! Makes sense, I added some suggestions with respect to the test.

Should be done.

May 16 2022, 9:00 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 16 2022, 8:55 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125696: [BasicBlockUtils] Add corner case test for loop metadata..
May 16 2022, 8:55 AM · Restricted Project, Restricted Project
hgreving added a comment to D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

Thanks for the patch! Makes sense, I added some suggestions with respect to the test.

May 16 2022, 8:50 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

Rebased to https://reviews.llvm.org/D125696

May 16 2022, 8:49 AM · Restricted Project, Restricted Project
hgreving requested review of D125696: [BasicBlockUtils] Add corner case test for loop metadata..
May 16 2022, 8:48 AM · Restricted Project, Restricted Project

May 13 2022

hgreving updated the diff for D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..

Whoa another corner case.

May 13 2022, 2:03 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 13 2022, 12:26 PM · Restricted Project, Restricted Project
hgreving retitled D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header. from BasicBlockUtils] Do not move loop metadata if outer loop header. to [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 13 2022, 11:47 AM · Restricted Project, Restricted Project
hgreving requested review of D125574: [BasicBlockUtils] Do not move loop metadata if outer loop header..
May 13 2022, 11:47 AM · Restricted Project, Restricted Project

May 10 2022

hgreving updated the diff for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Added a few clang-format on/off. I suggest to accept some of the enum changes in IntrinsicEmitter.cpp, Function.cpp, it feels unnecessary not to accept clang-format here. I wonder if these deltas are due to different clang-format versions in the past.

May 10 2022, 2:08 PM · Restricted Project, Restricted Project
hgreving added a comment to D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Please upload patches with full context using git diff -U999999

May 10 2022, 9:45 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Full context update (excl clang-format off notations yet)

May 10 2022, 9:45 AM · Restricted Project, Restricted Project
hgreving added a comment to D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

clang-format changes. I am aware that some of the changes look like they do not follow existing code. I'm not sure why clang-format does this.

We've been ignoring clang-format on these files. Maybe we should add // clang-format off markers

May 10 2022, 9:33 AM · Restricted Project, Restricted Project
hgreving updated the diff for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

clang-format changes. I am aware that some of the changes look like they do not follow existing code. I'm not sure why clang-format does this.

May 10 2022, 9:21 AM · Restricted Project, Restricted Project

May 9 2022

hgreving added reviewers for D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4.: craig.topper, jmolloy, majnemer, ThomasRaoux.
May 9 2022, 2:34 PM · Restricted Project, Restricted Project
hgreving requested review of D125247: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 9 2022, 10:48 AM · Restricted Project, Restricted Project

May 7 2022

hgreving abandoned D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

Abandoning, may try the integer route or check the sel DAG failures more closely.

May 7 2022, 7:50 AM · Restricted Project, Restricted Project

May 6 2022

hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 6:29 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 5:50 PM · Restricted Project, Restricted Project
hgreving added inline comments to D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 4:36 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 4:35 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 4:29 PM · Restricted Project, Restricted Project
hgreving added a comment to D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..

What SelectionDAG support is needed for i2/i4?

May 6 2022, 4:23 PM · Restricted Project, Restricted Project
hgreving updated the summary of D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 4:07 PM · Restricted Project, Restricted Project
hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 6 2022, 4:06 PM · Restricted Project, Restricted Project

May 5 2022

hgreving updated the diff for D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 5 2022, 11:23 AM · Restricted Project, Restricted Project
hgreving requested review of D125018: [ValueTypes] Define MVTs for v128i2/v64i4 as well as i2 and i4..
May 5 2022, 8:59 AM · Restricted Project, Restricted Project

Apr 21 2022

hgreving added a comment to rG9592e88f59cf: MachineModuleInfo: Don't allow dynamically setting DbgInfoAvailable.

The MMI should be reflecting the underlying module. Why isn’t your IR expressing you don’t want the debug info emitted by setting the emission kind to NoDebug?

Short answer: I didn't know about this, interesting, thanks! Longer answer: the IR is from MLIR, not sure if they can set this accordingly, but we can make this work. So the emission kind is the way to preset?

Yes. It leaves the debug metadata around for the various remarks and things that want it, but doesn't emit it in the final binary (part of what this happened to fix was the handling of this for CodeView). Alternatively you could just strip the debug metadata if you really don't want it.

Apr 21 2022, 7:27 AM · Restricted Project, Restricted Project

Apr 20 2022

hgreving added a comment to rG9592e88f59cf: MachineModuleInfo: Don't allow dynamically setting DbgInfoAvailable.

@hgreving reported a concern that the removal of setDebugInfoAvailability may not have an alternative. I am just forwarding the message here :)

We're using this switch downstream to suppress the asm printer complaining about debug symbols not being absolute (we have a simplified linker backend). Since the backend has its own MMI module I don't see how you can preset debug availability. Is this change really necessary, I wonder who else was using this switch?

I'm trying to get MIR printing into a more reliable state, such that you will get the exact same result if you stop and restart the compile at any point. MachineModuleInfo is not serialized now, so any dynamically changed state here is discarded. I do not believe it's appropriate for a codegen pass to be dynamically setting anything here. Everything here is really a cache, or a module level analysis (which could and probably should be split into separate analyses) and should not be stateful.

What do you mean exactly by "preset debug availability"?

I see. I was referring to "This can be set up front" in the commit message which seemed to suggest one can preset the same flag upon initialization? If so, I didn't see where. Basically our linker is extremely simple, setting all symbols to a variable value which makes them absolute. If MMI.HasDebugInfo(), the asm printer will complain about such debug related symbols being absolute. It looks like we can use -disable-debug-info-print, but I liked the previous API better. We're setting this in the asm printer pass, lacking a better place.

The MMI should be reflecting the underlying module. Why isn’t your IR expressing you don’t want the debug info emitted by setting the emission kind to NoDebug?

Apr 20 2022, 8:41 PM · Restricted Project, Restricted Project
hgreving added a comment to rG9592e88f59cf: MachineModuleInfo: Don't allow dynamically setting DbgInfoAvailable.

@hgreving reported a concern that the removal of setDebugInfoAvailability may not have an alternative. I am just forwarding the message here :)

We're using this switch downstream to suppress the asm printer complaining about debug symbols not being absolute (we have a simplified linker backend). Since the backend has its own MMI module I don't see how you can preset debug availability. Is this change really necessary, I wonder who else was using this switch?

I'm trying to get MIR printing into a more reliable state, such that you will get the exact same result if you stop and restart the compile at any point. MachineModuleInfo is not serialized now, so any dynamically changed state here is discarded. I do not believe it's appropriate for a codegen pass to be dynamically setting anything here. Everything here is really a cache, or a module level analysis (which could and probably should be split into separate analyses) and should not be stateful.

What do you mean exactly by "preset debug availability"?

Apr 20 2022, 6:37 PM · Restricted Project, Restricted Project
hgreving added a comment to rG9592e88f59cf: MachineModuleInfo: Don't allow dynamically setting DbgInfoAvailable.

@hgreving reported a concern that the removal of setDebugInfoAvailability may not have an alternative. I am just forwarding the message here :)

Apr 20 2022, 5:53 PM · Restricted Project, Restricted Project

Mar 22 2022

hgreving committed rG510a2bbda4ed: [IR] Allow matching pointer to vector with opaque pointers. (authored by hgreving).
[IR] Allow matching pointer to vector with opaque pointers.
Mar 22 2022, 9:35 AM · Restricted Project
hgreving closed D122203: [IR] Allow matching pointer to vector with opaque pointers..
Mar 22 2022, 9:35 AM · Restricted Project, Restricted Project
hgreving updated the summary of D122203: [IR] Allow matching pointer to vector with opaque pointers..
Mar 22 2022, 8:20 AM · Restricted Project, Restricted Project
hgreving added a comment to D122203: [IR] Allow matching pointer to vector with opaque pointers..

LGTM. Just to be clear, when you say "vector pointer" you're talking about a "pointer to vector" rather than a "vector of pointers", right?

Mar 22 2022, 8:19 AM · Restricted Project, Restricted Project
hgreving retitled D122203: [IR] Allow matching pointer to vector with opaque pointers. from [IR] Allow matching vector pointer with opaque pointers. to [IR] Allow matching pointer to vector with opaque pointers..
Mar 22 2022, 8:19 AM · Restricted Project, Restricted Project
hgreving updated the summary of D122203: [IR] Allow matching pointer to vector with opaque pointers..
Mar 22 2022, 7:37 AM · Restricted Project, Restricted Project
hgreving added a comment to D122203: [IR] Allow matching pointer to vector with opaque pointers..

Could you make the title more specific, mentioning intrinsic overloading and opaque pointers?

Also could you add a FIXME saying that other nested types don't properly work with intrinsic overloading but hopefully it doesn't happen in practice?

Mar 22 2022, 7:34 AM · Restricted Project, Restricted Project
hgreving updated the diff for D122203: [IR] Allow matching pointer to vector with opaque pointers..
Mar 22 2022, 7:33 AM · Restricted Project, Restricted Project

Mar 21 2022

hgreving requested review of D122203: [IR] Allow matching pointer to vector with opaque pointers..
Mar 21 2022, 7:30 PM · Restricted Project, Restricted Project

Sep 21 2021

hgreving added a comment to D110026: [Verifier] Verify scoped noalias metadata.

Seems like that this patch now contradicts the methods MDBuilder.h:createAnonymousAliasScopeDomain and createAnonymousAliasScope. If you actually give it a string, it won't verify. I wonder if you should amend this changing the methods as well?

These methods are intended to be supported and are used in-tree and do verify there. Could you provide an example that would fail? Please keep in mind that scoped alias metadata always deals in scope lists, while createAnonymousAliasScope() only creates an isolated scope. You cannot pass the result of createAnonymousAliasScope() directly to !noalias, !alias.scope, etc.

Yes. But MDB.createAnonymousAliasScopeDomain("mystring") noew creates e.g. the domain !33 = distinct !{!33, !"mystring"}, which leads to the verifier error "second scope operand must be MDNode". This seems inconsistent. Same happens for createAnonymousAliasScope().

Sep 21 2021, 9:50 AM · Restricted Project
hgreving added a comment to D110026: [Verifier] Verify scoped noalias metadata.

Seems like that this patch now contradicts the methods MDBuilder.h:createAnonymousAliasScopeDomain and createAnonymousAliasScope. If you actually give it a string, it won't verify. I wonder if you should amend this changing the methods as well?

These methods are intended to be supported and are used in-tree and do verify there. Could you provide an example that would fail? Please keep in mind that scoped alias metadata always deals in scope lists, while createAnonymousAliasScope() only creates an isolated scope. You cannot pass the result of createAnonymousAliasScope() directly to !noalias, !alias.scope, etc.

Sep 21 2021, 9:02 AM · Restricted Project
hgreving added a comment to D110026: [Verifier] Verify scoped noalias metadata.

Seems like that this patch now contradicts the methods MDBuilder.h:createAnonymousAliasScopeDomain and createAnonymousAliasScope. If you actually give it a string, it won't verify. I wonder if you should amend this changing the methods as well?

Sep 21 2021, 8:25 AM · Restricted Project

Jul 20 2021

hgreving added a comment to D104801: [MemCpyOpt] Enable memcpy optimizations unconditionally..

Besides that this patch created the intrinsics llvm.memset which in our target was unsupported, it also created pointers that may be invalid on the target, e.g. i8 addrspace(X)* where addrspace(X) only supports vector memory. While this is probably all solvable, please consider adding TTI switches for targets to disable this optimization (e.g. for the intrinsics).

...and that brings us back to where this patch has started -- with a TTI knob to control whether it wants this pass enabled. :-/

That said, I'm not quite sure that "this type/AS combination" is invalid is something you can expect all parts of LLVM to respect. While this pass may happen to tickle it, I can see other cases where the type of the pointer may change. I would think that dealing with the quirks of type support of particular target would be something for legalizer to do.

Jul 20 2021, 9:50 AM · Restricted Project

Jul 19 2021

hgreving added a comment to D104801: [MemCpyOpt] Enable memcpy optimizations unconditionally..

Besides that this patch created the intrinsics llvm.memset which in our target was unsupported, it also created pointers that may be invalid on the target, e.g. i8 addrspace(X)* where addrspace(X) only supports vector memory. While this is probably all solvable, please consider adding TTI switches for targets to disable this optimization (e.g. for the intrinsics).

Jul 19 2021, 7:52 PM · Restricted Project

Jul 15 2021

hgreving added inline comments to D105868: [mlir] Add software pipelining transformation for scf.for op.
Jul 15 2021, 9:41 AM · Restricted Project

Jun 25 2021

hgreving committed rGe15e1417b9fd: [ModuloSchedule] Pass loop block explicitly to kernel rewriter. (authored by hgreving).
[ModuloSchedule] Pass loop block explicitly to kernel rewriter.
Jun 25 2021, 9:51 AM
hgreving closed D104811: [ModuloSchedule] Pass loop block explicitly to kernel rewriter..
Jun 25 2021, 9:51 AM · Restricted Project

Jun 23 2021

hgreving requested review of D104811: [ModuloSchedule] Pass loop block explicitly to kernel rewriter..
Jun 23 2021, 1:04 PM · Restricted Project

Jun 21 2021

hgreving committed rG96994427f242: RegisterCoalescer: Fix iterating through use operands. (authored by hgreving).
RegisterCoalescer: Fix iterating through use operands.
Jun 21 2021, 9:18 AM
hgreving closed D104576: RegisterCoalescer: Fix iterating through use operands..
Jun 21 2021, 9:18 AM · Restricted Project

Jun 20 2021

hgreving added a comment to D104576: RegisterCoalescer: Fix iterating through use operands..

Just so that I understand clearly, the fault here was modifying operands while using range-iteration over the same collection? Was the symptom a crash, or missing output? (Thanks for the catch).

Jun 20 2021, 6:33 PM · Restricted Project
hgreving updated the diff for D104576: RegisterCoalescer: Fix iterating through use operands..

Second CHECK line.
clang-format.

Jun 20 2021, 6:30 PM · Restricted Project

Jun 18 2021

hgreving updated the diff for D104576: RegisterCoalescer: Fix iterating through use operands..

Use iterator preincrement instead.

Jun 18 2021, 6:29 PM · Restricted Project
hgreving added a reviewer for D104576: RegisterCoalescer: Fix iterating through use operands.: jmorse.
Jun 18 2021, 3:30 PM · Restricted Project
hgreving added reviewers for D104576: RegisterCoalescer: Fix iterating through use operands.: majnemer, kariddi, hoy, klausler.
Jun 18 2021, 3:23 PM · Restricted Project
hgreving requested review of D104576: RegisterCoalescer: Fix iterating through use operands..
Jun 18 2021, 3:21 PM · Restricted Project

May 26 2021

hgreving added a comment to D98240: [VectorCombine] Simplify to scalar store if only one element updated.

For targets not supporting scalar load from vector memory (like ours), this breaks it:

%43 = load <8 x i32>, <8 x i32> addrspace(201)* %1, align 32, !tbaa !28
%44 = extractelement <8 x i32> %43, i32 0

Now:

%43 = getelementptr inbounds <8 x i32>, <8 x i32> addrspace(201)* %1, i32 0, i32 0
%44 = load i32, i32 addrspace(201)* %43, align 32

Are targets expected to provide patterns?

Interesting! I guess the code assumes that a scalar load is always possible & at least as cheap as the vector version. But I think it would make sense to ask the cost-model if that's the case. Not sure if it would be possible to test this with an in-tree target?

May 26 2021, 7:01 AM · Restricted Project

May 25 2021

hgreving added a comment to D98240: [VectorCombine] Simplify to scalar store if only one element updated.

For targets not supporting scalar load from vector memory (like ours), this breaks it:

May 25 2021, 8:08 PM · Restricted Project

May 14 2021

hgreving committed rG9d8e83b50e45: [MC] Add the ability to pass MCRegisterInfo to dump_pretty. (authored by hgreving).
[MC] Add the ability to pass MCRegisterInfo to dump_pretty.
May 14 2021, 6:25 PM

May 13 2021

hgreving updated the summary of D102413: [MC] Add the ability to pass MCRegisterInfo to dump_pretty.
May 13 2021, 1:17 PM · Restricted Project
hgreving added reviewers for D102413: [MC] Add the ability to pass MCRegisterInfo to dump_pretty: majnemer, kariddi.
May 13 2021, 12:43 PM · Restricted Project