Page MenuHomePhabricator

rengolin (Renato Golin)
Toolchain Engineer

Projects

User does not belong to any projects.

User Details

User Since
Oct 19 2012, 12:57 AM (352 w, 3 d)

Recent Activity

Fri, Jul 19

rengolin accepted D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..

Better this way, let's keep the changes contained to one per patch. If there's interest to change that behaviour or not, it should not hold this patch, which looks good to me now. Thanks!

Fri, Jul 19, 5:05 AM · Restricted Project

Thu, Jul 18

rengolin requested changes to D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..
Thu, Jul 18, 3:38 AM · Restricted Project
rengolin added a comment to D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..

@hsaito The test no_switch.ll failed because remarks aren't written now by default, so without -pass-remarks-analysis. I've just removed the corresponding check from the test. But, I think, the NFC label from diff/commit should also be removed in this case because the behavior is changed a little bit. No other problems with tests in the LoopVectorize directory. If this diff is applied, the entire set of tests passes.

Thu, Jul 18, 3:34 AM · Restricted Project

Fri, Jul 5

rengolin accepted D63614: [System Model] [TTI] Update cache and prefetch TTI interfaces.

As far as I can see this is an NFC refactoring with obvious benefits to readability and extensibility. LGTM too. :)

Fri, Jul 5, 9:37 AM · Restricted Project

Tue, Jul 2

rengolin added a comment to D53613: RFC: Explicit Vector Length Intrinsics and Attributes.

It's best to submit a new review.
Else no one sees the description as a mail.

Tue, Jul 2, 2:01 AM · Restricted Project
rengolin updated subscribers of D53613: RFC: Explicit Vector Length Intrinsics and Attributes.

Adding llvm-commits for wider audience

Tue, Jul 2, 1:45 AM · Restricted Project

Mon, Jun 24

rengolin accepted D63705: [ConstantFolding] Use hasVectorInstrinsicScalarOpd. NFC.
Mon, Jun 24, 4:53 AM · Restricted Project
rengolin accepted D63704: [Scalarizer] Add scalarizer support for smul.fix.sat.

lgtm, thanks!

Mon, Jun 24, 4:53 AM · Restricted Project

Jun 21 2019

rengolin added a comment to D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..

The diff has been updated: private methods were removed, the function 'reportVectorizationFailure' was moved to LoopVectorize.cpp and declared in LoopVectorize.h (namespace llvm). I've removed the passName parameter and pass LV_NAME as pass name to ORE but this change breaks 3 regression tests:

Jun 21 2019, 11:07 AM · Restricted Project

Jun 17 2019

rengolin added a comment to D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..

I agree with Hideki, this could be in LoopVectorize.h.

Jun 17 2019, 3:13 PM · Restricted Project

Jun 14 2019

rengolin added a comment to D62997: [LV] Share the LV illegality reporting with LoopVectorize. NFC..

Sorry Pavel, tough week. it's at the top of my list.

Jun 14 2019, 1:34 AM · Restricted Project

Jun 10 2019

rengolin added a comment to D32530: [SVE][IR] Scalable Vector IR Type.

@huntergr do you have an account on bugzilla? I couldn't CC you on that bug.

Jun 10 2019, 2:25 AM · Restricted Project

Jun 6 2019

rengolin committed rG9e97caf59474: [LV] Wrap LV illegality reporting in a function. NFC. (authored by rengolin).
[LV] Wrap LV illegality reporting in a function. NFC.
Jun 6 2019, 12:14 PM
rengolin closed D62478: [LV] Wrap LV illegality reporting in a function. NFC..

Committed as r362736

Jun 6 2019, 12:13 PM · Restricted Project
rengolin committed rL362736: [LV] Wrap LV illegality reporting in a function. NFC..
[LV] Wrap LV illegality reporting in a function. NFC.
Jun 6 2019, 12:13 PM

Jun 5 2019

rengolin accepted D62478: [LV] Wrap LV illegality reporting in a function. NFC..

Much cleaner, thanks! I think we should deal with extending the functionality in a separate patch, since that's already a good localized improvement.

Jun 5 2019, 1:17 PM · Restricted Project

May 28 2019

rengolin added a comment to D62478: [LV] Wrap LV illegality reporting in a function. NFC..

I don't understand why having a function with a lot of arguments is better than a private method getting access to the class' members. Why are private methods in C++ at all, they also are used only from class methods and can be replaced with static util functions getting required class members as arguments.

May 28 2019, 10:53 AM · Restricted Project
rengolin added a comment to D62478: [LV] Wrap LV illegality reporting in a function. NFC..

I believe the LoopVectorize class also should use this function since there are a number of occurrences of the same pattern

May 28 2019, 10:37 AM · Restricted Project

May 27 2019

rengolin added a comment to D62478: [LV] Wrap LV illegality reporting in a function. NFC..

@rengolin It is because the function uses OptimizationRemarkEmitter *ORE, a member of the LoopVectorizationLegality class.

May 27 2019, 1:14 PM · Restricted Project
rengolin added a comment to D62478: [LV] Wrap LV illegality reporting in a function. NFC..

Looks nice, thanks! Though, does it need to be a member function? Why not just a local static function?

May 27 2019, 5:35 AM · Restricted Project

May 22 2019

rengolin added a comment to D62110: [LV] prevent potential divide by zero. NFC.

LoopVectorizationCostModel::expectedCost default initializes its return value, an instance of LoopVectorizationCostModel::VectorizationCostTy declared as:

using VectorizationCostTy = std::pair<unsigned, bool>;

so looks like it's possible.

May 22 2019, 2:57 AM · Restricted Project

May 20 2019

rengolin added a comment to D62110: [LV] prevent potential divide by zero. NFC.

Can expectedCost ever return zero?

May 20 2019, 12:43 AM · Restricted Project

May 8 2019

rengolin accepted D61638: [LV] Move getScalarizationOverhead and vector call cost computations to CM. (NFC).

looks obviously good to me. thanks!

May 8 2019, 2:33 PM · Restricted Project

Apr 30 2019

rengolin accepted D61030: [PassManagerBuilder] Add option for interleaved loops, for loop vectorize..
Apr 30 2019, 2:07 PM · Restricted Project
rengolin added inline comments to D61030: [PassManagerBuilder] Add option for interleaved loops, for loop vectorize..
Apr 30 2019, 6:22 AM · Restricted Project

Apr 24 2019

rengolin added a comment to D32530: [SVE][IR] Scalable Vector IR Type.

Exactly. Non-constant values can become constant. Constant values can be guarded by vscale-dependent runtime guards (both hand-written and compiler generated). My preference is to leave this not restricted to vscale == 1 values, but rather allow all values that can be supported at runtime, and have it be UB if, at runtime, the relevant index is not available.

Apr 24 2019, 9:25 AM · Restricted Project

Apr 15 2019

rengolin added a comment to D32530: [SVE][IR] Scalable Vector IR Type.

So if we wanted to keep them as intrinsics for now, I think we have one of three options:

  1. Leave discussion on more complicated shuffles until later, and only use scalable autovectorization on loops which don't need anything more than splats.
Apr 15 2019, 6:52 AM · Restricted Project

Apr 13 2019

rengolin added a comment to D32530: [SVE][IR] Scalable Vector IR Type.

If we are going for more than element-wise Instructions, we need to have well defined and agreed semantics for each of those, and that should be part of the LangRef for each such Instruction.

Apr 13 2019, 12:54 PM · Restricted Project

Apr 6 2019

rengolin added inline comments to D32530: [SVE][IR] Scalable Vector IR Type.
Apr 6 2019, 3:02 AM · Restricted Project

Apr 5 2019

rengolin added a comment to D32530: [SVE][IR] Scalable Vector IR Type.
  • Clarified that the runtime multiple is constant across all scalable vector types, even if the constant value isn't known at compile time.
  • Removed extra whitespace.
Apr 5 2019, 6:16 AM · Restricted Project
rengolin added inline comments to D32530: [SVE][IR] Scalable Vector IR Type.
Apr 5 2019, 1:54 AM · Restricted Project

Mar 20 2019

rengolin added inline comments to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..
Mar 20 2019, 2:08 AM · Restricted Project

Mar 19 2019

rengolin added inline comments to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..
Mar 19 2019, 2:31 AM · Restricted Project

Mar 16 2019

rengolin added a comment to D59335: [RFC] Enable vectorization on Neon even without fast-math.

I'm curious as to how will we generate these flags.

Mar 16 2019, 5:49 AM · Restricted Project
rengolin added a comment to D59335: [RFC] Enable vectorization on Neon even without fast-math.

langref part seems to be missing.

I'll add it if/once reviewers are okay with this approach.

Mar 16 2019, 5:36 AM · Restricted Project
rengolin added a comment to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..

Cost model for emulated masked load/store is completely broken.

comment is still valid. What would it take to address this properly?

Each target to run many applications/benchmarks to come up with the "right" adjustment to the cost model. No way around that.

Mar 16 2019, 5:32 AM · Restricted Project

Mar 13 2019

rengolin added a comment to D59149: [LV] move useEmulatedMaskMemRefHack() functionality to TTI..

The concept of "hacked" is lost when you move up to TTI. I'd change the logic to reflect that this is making it "prohibitively expensive" instead of "hacked value".

Mar 13 2019, 7:49 AM · Restricted Project

Mar 7 2019

rengolin added a comment to D59108: [Docs] Add top level CONTRIBUTING.md..

I'm not against moving docs there but I think there should be a conversation about the broader subject of docs, github, wiki, etc.

Mar 7 2019, 1:21 PM · Restricted Project
rengolin added reviewers for D47770: [MVT][SVE] Add EVT strings and Type mapping: rengolin, greened.
Mar 7 2019, 11:35 AM
rengolin added a reviewer for D53137: Scalable type size queries (llvm): greened.
Mar 7 2019, 11:35 AM · Restricted Project

Feb 27 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

I'm trying to understand what log10 behavior got changed. Could someone out where that change is?

Feb 27 2019, 12:28 PM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

I'm not sure what the proposed split would consist of.

Feb 27 2019, 10:37 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Hi @steleman, that wasn't a "loaded question", it was an honest one. Let me try to clarify what that means for all parties.

Feb 27 2019, 1:28 AM · Restricted Project

Feb 19 2019

rengolin committed rG89d4a9d6e4e0: second test on git-llvm-push (authored by rengolin).
second test on git-llvm-push
Feb 19 2019, 2:06 PM
rengolin committed rL354390: second test on git-llvm-push.
second test on git-llvm-push
Feb 19 2019, 2:05 PM
rengolin committed rG9845da93e125: Testing git-llvm-push script (authored by rengolin).
Testing git-llvm-push script
Feb 19 2019, 1:32 PM
rengolin committed rL354383: Testing git-llvm-push script.
Testing git-llvm-push script
Feb 19 2019, 1:31 PM

Feb 18 2019

rengolin added a comment to D54791: [AArch64] Fix disassembly of SXTL and UXTL aliases.

@t.p.northover Is this the correct behaviour for Apple's syntax?

Feb 18 2019, 3:26 AM · Restricted Project
rengolin accepted D23610: [ARM] Add pre-defined macros for ROPI and RWPI.

Sorry for the delay, this fell out of my radar and just saw the ping now.

Feb 18 2019, 3:24 AM · Restricted Project

Feb 16 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Perfect, thanks!

Feb 16 2019, 1:38 AM · Restricted Project

Feb 15 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

@bryanpkc debug build makes sense, thanks! @steleman, I'd rather just order now and try to rector later. This patch has changed enough tunes already. :-)

Feb 15 2019, 4:33 PM · Restricted Project
rengolin accepted D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Just did a rebuild after moving lgamma after isoc99. No warnings, no errors, and no difference in my test results ...

Feb 15 2019, 5:52 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Thanks Stephan, now looks good.

Feb 15 2019, 4:48 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Thanks for your answers, they make sense. Other than the mistake I made on disabling exp calls (you were right), looks fine.

Feb 15 2019, 2:37 AM · Restricted Project
rengolin accepted D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions.

Thanks, LGTM!

Feb 15 2019, 2:28 AM · Restricted Project

Feb 14 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Because __tgamma_r_finite doesn't exist, at least on Linux. :-)

See /usr/include/bits/math-finite.h.

Feb 14 2019, 5:16 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

tgamma stands for "true gamma", and it is the function name specified in the ANSI C standard.

Feb 14 2019, 3:37 AM · Restricted Project
rengolin edited reviewers for D57504: RFC: Prototype & Roadmap for vector predication in LLVM, added: mkuper, rkruppe, fhahn; removed: programmerjake.
Feb 14 2019, 2:58 AM · Restricted Project
rengolin added inline comments to D53927: [AArch64] Enable libm vectorized functions via SLEEF.
Feb 14 2019, 2:52 AM · Restricted Project

Feb 13 2019

rengolin added a comment to D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions.

Funny thing is, SVML is also only supported, AFAIK, for Intel. I agree that we should emit errors, but we should also emit a similar error on SVML.

Feb 13 2019, 5:44 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

I have a few comments inline, mostly harmless, as the change is almost entirely mechanical and makes sense.

Feb 13 2019, 4:46 AM · Restricted Project

Feb 9 2019

rengolin added a comment to D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions.

@hfinkel There are changes in this patch, as well as its LLVM counterpart D53927. Please, re-review.

Feb 9 2019, 5:09 AM · Restricted Project
rengolin requested changes to D53927: [AArch64] Enable libm vectorized functions via SLEEF.
Feb 9 2019, 5:08 AM · Restricted Project
rengolin reopened D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Right, this is a completely different patch and it seems that the original proposal hadn't been tested thoroughly.

Feb 9 2019, 5:08 AM · Restricted Project
rengolin requested changes to D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions.

Since the previous version was approved already, I'm "requesting changes" so that we can look at it again, together with D53927 to make sure it's still the right way to go.

Feb 9 2019, 5:07 AM · Restricted Project

Feb 8 2019

rengolin added a reviewer for D57953: [Jump Threading] Convert conditional branches into unconditional branches using GVN results: jfb.
Feb 8 2019, 8:30 AM
rengolin added a comment to D57953: [Jump Threading] Convert conditional branches into unconditional branches using GVN results.

Adding llvm-commits for wider audience

Feb 8 2019, 8:13 AM
rengolin updated subscribers of D57953: [Jump Threading] Convert conditional branches into unconditional branches using GVN results.
Feb 8 2019, 8:12 AM

Feb 6 2019

rengolin added inline comments to D57837: [LV] Prevent interleaving if computeMaxVF returned None..
Feb 6 2019, 2:02 PM · Restricted Project

Jan 31 2019

rengolin accepted D57529: Add .dword direcrive support for aarch64 mc.

dword is indeed widely used. I'm surprised we didn't support that yet. Apparently, neither does Arm, only X86, Mips and RiscV.

Jan 31 2019, 11:35 AM

Jan 30 2019

rengolin accepted D53695: Scalable VectorType RFC.

I didn't move it to the proposals directory, since I'm not sure if we would lose the inline comments that way.

Jan 30 2019, 8:23 AM

Jan 29 2019

rengolin added a comment to D30247: Epilog loop vectorization.

BTW, targets that have efficient masked operations may also find it useful for cycles and size to vectorize (including epilogs) under -Os, and following r345705 possibly also with enable-masked-interleaved-mem-accesses turned on.

Jan 29 2019, 9:08 AM

Jan 23 2019

rengolin accepted D57044: [AArch64] OOptimize floating point materialization.

LGTM, thanks!

Jan 23 2019, 9:05 AM · Restricted Project
rengolin added a comment to D53355: Introducing VPPHINode .

Sorry for this long reply. As Satish has pointed out in his review, this VPPHINode will be used to generate blending.

Jan 23 2019, 6:53 AM

Jan 22 2019

rengolin added a comment to D57044: [AArch64] OOptimize floating point materialization.

Sounds good. Please add simple tests for +inf and -inf on both double and float. Perhaps also float to double and vice versa from the IR constant (like the changed test shows), too. Thanks!

Jan 22 2019, 5:34 AM · Restricted Project

Jan 20 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Hal approved the Clang side, so this one looks good, too.

Jan 20 2019, 2:28 AM · Restricted Project

Jan 10 2019

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Perhaps best to ping Clang's commit, as that's the review that is blocking this one.

Jan 10 2019, 2:07 AM · Restricted Project

Dec 19 2018

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Thanks! I've updated the reviewers on the Clang review (D53928).

Dec 19 2018, 7:26 AM · Restricted Project
rengolin added reviewers for D53928: Enable builtins necessary for SLEEF [AArch64] vectorized trigonometry libm functions: rsmith, chandlerc, rnk, ABataev.

Adding clang/omp developers for proper review. Please feel free to add more.

Dec 19 2018, 7:16 AM · Restricted Project

Dec 17 2018

rengolin requested changes to D55445: [cmake] Update config.guess to gnuconfig git 2018-12-07.

If you git log cmake/config.guess you'll see that all the past changes either remove functionality or add obvious parts that shouldn't inflict on copyright.

Dec 17 2018, 5:06 AM

Dec 14 2018

rengolin accepted D53816: [TableGen:AsmWriter] Cope with consecutive tied operands..

Right, that's all very hypothetical, but the change is harmless otherwise and generally an improvement of the code. I can't see any impact this would have in code generation or compilation time, so LGTM.

Dec 14 2018, 3:39 AM
rengolin updated subscribers of D55427: [libcxx] Call __count_bool_true for bitset count.

Getting a bit late in this discussion, as we had an internal one just recently.

Dec 14 2018, 3:16 AM

Dec 13 2018

rengolin added a comment to D53349: [VPlan] Changes to implement VPlan based predication for VPlan-native path..

Right, I'm happy with the patch and will let @fhahn do the final review and approval. Thanks!

Dec 13 2018, 3:21 AM

Dec 12 2018

rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Where, when, how and by whom are these #pragmas inserted? Are they silently inserted by clang? Do they have to be manually inserted in existing code?
What is the effect of these #pragmas? The ARM closed-source commercial compiler requires OpenMP. How will these #pragmas be implemented in the open-source clang? Will they import OpenMP interfaces in the open-source clang as well?
If importing OpenMP interfaces is not triggered by the insertion of these #pragmas, why is the argument to -fveclib called 'openmp'? I would find it baffling to have to type -fveclib=openmp on compile-line, but ending up not using OpenMP.

I think you should post these questions as a reply to the RFC.

Dec 12 2018, 2:03 AM · Restricted Project
rengolin added a comment to D53349: [VPlan] Changes to implement VPlan based predication for VPlan-native path..

As a starting point, this sure looks good to me. Thanks!

Dec 12 2018, 1:54 AM

Dec 11 2018

rengolin added inline comments to D53927: [AArch64] Enable libm vectorized functions via SLEEF.
Dec 11 2018, 2:15 PM · Restricted Project
rengolin added inline comments to D53927: [AArch64] Enable libm vectorized functions via SLEEF.
Dec 11 2018, 1:55 PM · Restricted Project
rengolin added a comment to D54412: [RFC] Re-implementing -fveclib with OpenMP.

Is there a document that explains how to submit an RFC?

Dec 11 2018, 1:34 PM
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Then they are in trouble with a hypothetical distro SLEEF.

That's because no commercial distro - if they ever decide to include SLEEF - will compile SLEEF for the maximum CPU feature-set possible. They do the exact opposite - they compile it for the lowest possible common denominator.

For example, on AArch64, you won't get distro libraries compiled specifically for -mcpu=thunderx2t99. Or on x86_64 you'll never get -mavx512ifma, for example.

Dec 11 2018, 10:01 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

I am taking it on faith that SLEEF won't keep changing their mangling and ABI.
AFAICS, SLEEF isn't included in any Linux distro. I can't find any reference to it in RH/CentOS/Fedora, or at rpmfind. Or Ubuntu or SuSE.

Dec 11 2018, 8:39 AM · Restricted Project
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Today, we don't have SVE, so we don't generate SVE bindings, all fine. Say, next year you upstream SVE bindings in SLEEF and then change LLVM to emit those too.

SLEEF already has support for SVE.

Dec 11 2018, 7:06 AM · Restricted Project
rengolin added reviewers for D54412: [RFC] Re-implementing -fveclib with OpenMP: hfinkel, rengolin, hsaito.
Dec 11 2018, 7:05 AM
rengolin added a comment to D53927: [AArch64] Enable libm vectorized functions via SLEEF.

Overall, this change looks ok to me. The tests look good, too.

Dec 11 2018, 4:29 AM · Restricted Project

Dec 7 2018

rengolin added a comment to D55445: [cmake] Update config.guess to gnuconfig git 2018-12-07.

One would hope someone would have done similar work on a compatible license, after all these years...

I don't think that's likely to happen, given the very narrow use of this script and how complex it logic is. I think it would take tremendous effort to reinvent all those hacks from scratch, and it would be hard to prove the work was done independently without violating copyright.

Dec 7 2018, 11:45 AM
rengolin added reviewers for D55445: [cmake] Update config.guess to gnuconfig git 2018-12-07: lattner, chandlerc, echristo.

Adding more folks due to the license issue.

Dec 7 2018, 9:57 AM

Dec 5 2018

rengolin committed rL348364: Revert: Honor -fdebug-prefix-map when creating function names for the debug….
Revert: Honor -fdebug-prefix-map when creating function names for the debug…
Dec 5 2018, 6:00 AM
rengolin committed rC348364: Revert: Honor -fdebug-prefix-map when creating function names for the debug….
Revert: Honor -fdebug-prefix-map when creating function names for the debug…
Dec 5 2018, 6:00 AM

Dec 3 2018

rengolin accepted D54853: [ARM][MC] Move information about variadic register defs into tablegen.

Right, that one is a hairy test, and I can see how this would break that test if not right. :)

Dec 3 2018, 2:07 AM

Dec 1 2018

rengolin accepted D54852: [ARM][Asm] Debug trace for the processInstruction loop.

That's very useful, thanks! LGTM.

Dec 1 2018, 12:01 PM
rengolin added a comment to D54853: [ARM][MC] Move information about variadic register defs into tablegen.

Nice clean solution, thanks!

Dec 1 2018, 11:59 AM