Page MenuHomePhabricator

evandro (Evandro Menezes)
User

Projects

User does not belong to any projects.

User Details

User Since
Jan 5 2016, 9:21 AM (188 w, 5 d)

Currently working at the Samsung Austin R&D Center on the Samsung next generation ARM cores.

Recent Activity

Fri, Aug 16

evandro committed rG05e9c2ac2e19: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y) (authored by evandro).
[InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y)
Fri, Aug 16, 8:35 AM
evandro committed rL369120: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
[InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y)
Fri, Aug 16, 8:35 AM
evandro closed D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Fri, Aug 16, 8:35 AM · Restricted Project
evandro added a comment to D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).

Thank you.

Fri, Aug 16, 8:35 AM · Restricted Project

Thu, Aug 15

evandro updated the diff for D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Thu, Aug 15, 6:08 PM · Restricted Project
evandro added inline comments to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Thu, Aug 15, 6:06 PM · Restricted Project

Tue, Aug 13

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

Ping❗ 🔔🔔🔔

Tue, Aug 13, 6:24 PM · Restricted Project

Fri, Aug 9

evandro updated the diff for D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Fri, Aug 9, 11:39 AM · Restricted Project
evandro committed rG59fbe516bd03: [InstCombine] Refactor optimizeExp2() (NFC) (authored by evandro).
[InstCombine] Refactor optimizeExp2() (NFC)
Fri, Aug 9, 10:24 AM
evandro committed rL368457: [InstCombine] Refactor optimizeExp2() (NFC).
[InstCombine] Refactor optimizeExp2() (NFC)
Fri, Aug 9, 10:22 AM
evandro committed rG8a2121417486: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function… (authored by evandro).
[Transforms] Add a emitBinaryFloatFnCall() version that fetches the function…
Fri, Aug 9, 10:07 AM
evandro committed rL368453: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function….
[Transforms] Add a emitBinaryFloatFnCall() version that fetches the function…
Fri, Aug 9, 10:07 AM
evandro closed D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Fri, Aug 9, 10:07 AM · Restricted Project
evandro committed rG04c0862aa1bc: [Transforms] Fix comments for hasFloatFn() and getFloatFnName() (NFC) (authored by evandro).
[Transforms] Fix comments for hasFloatFn() and getFloatFnName() (NFC)
Fri, Aug 9, 9:59 AM
evandro committed rL368452: [Transforms] Fix comments for hasFloatFn() and getFloatFnName() (NFC).
[Transforms] Fix comments for hasFloatFn() and getFloatFnName() (NFC)
Fri, Aug 9, 9:58 AM
evandro added inline comments to D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Fri, Aug 9, 9:51 AM · Restricted Project
evandro updated the diff for D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Fri, Aug 9, 9:51 AM · Restricted Project
evandro added a comment to D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).

Since exp2(itofp(x) is similarly simplified into ldexp(1.0, x) without accounting for any relaxation, methinks that this simplification should be fine too. Will note this.

Fri, Aug 9, 9:50 AM · Restricted Project
evandro updated the diff for D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Fri, Aug 9, 9:42 AM · Restricted Project
evandro added inline comments to D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Fri, Aug 9, 9:40 AM · Restricted Project
evandro committed rGc6c00cdf2e7e: [Transforms] Rename hasUnaryFloatFn() and getUnaryFloatFn() (NFC) (authored by evandro).
[Transforms] Rename hasUnaryFloatFn() and getUnaryFloatFn() (NFC)
Fri, Aug 9, 9:05 AM
evandro committed rL368449: [Transforms] Rename hasUnaryFloatFn() and getUnaryFloatFn() (NFC).
[Transforms] Rename hasUnaryFloatFn() and getUnaryFloatFn() (NFC)
Fri, Aug 9, 9:05 AM

Thu, Aug 8

evandro created D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Thu, Aug 8, 3:11 PM · Restricted Project
evandro added a child revision for D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI: D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y).
Thu, Aug 8, 3:11 PM · Restricted Project
evandro added a parent revision for D65979: [InstCombine] Simplify pow(2.0, itofp(y)) to ldexp(1.0, y): D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Thu, Aug 8, 3:11 PM · Restricted Project
evandro added inline comments to D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Thu, Aug 8, 3:06 PM · Restricted Project
evandro added a child revision for D53370: Add a emitUnaryFloatFnCall version that fetches the function name from TLI: D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Thu, Aug 8, 2:26 PM
evandro added a parent revision for D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI: D53370: Add a emitUnaryFloatFnCall version that fetches the function name from TLI.
Thu, Aug 8, 2:26 PM · Restricted Project
evandro created D65976: [Transforms] Add a emitBinaryFloatFnCall() version that fetches the function name from TLI.
Thu, Aug 8, 2:26 PM · Restricted Project

Wed, Aug 7

evandro added a comment to D49273: [InstCombine] Expand the simplification of pow() into exp2().

Oh right, we miss this for pow of two bases other than 2.0.

Yeah, we need a direct fold.

Wed, Aug 7, 2:10 PM · Restricted Project
evandro added a comment to D49273: [InstCombine] Expand the simplification of pow() into exp2().

We have exp to ldexp fold, so we indirectly fold pow integer case to ldexp. I think it is okay as is.

Wed, Aug 7, 1:55 PM · Restricted Project
evandro added a comment to D49273: [InstCombine] Expand the simplification of pow() into exp2().

Hello, ldexp seems to be faster here. Did you try it?

pow(2, e) to ldexp(1, e)

Wed, Aug 7, 1:37 PM · Restricted Project

Tue, Aug 6

evandro updated the summary of D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Tue, Aug 6, 6:39 PM · Restricted Project
evandro updated the diff for D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Tue, Aug 6, 6:08 PM · Restricted Project
evandro added inline comments to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Tue, Aug 6, 5:23 PM · Restricted Project

Mon, Aug 5

evandro committed rGa005c1ac4f3b: [AArch64] Expand bcmp() for small block lengths (authored by evandro).
[AArch64] Expand bcmp() for small block lengths
Mon, Aug 5, 11:10 AM
evandro committed rL367898: [AArch64] Expand bcmp() for small block lengths.
[AArch64] Expand bcmp() for small block lengths
Mon, Aug 5, 11:10 AM
evandro closed D64805: [AArch64] Expand bcmp() for small comparisons.
Mon, Aug 5, 11:10 AM · Restricted Project
evandro added inline comments to D64805: [AArch64] Expand bcmp() for small comparisons.
Mon, Aug 5, 10:13 AM · Restricted Project
evandro updated the diff for D64805: [AArch64] Expand bcmp() for small comparisons.
Mon, Aug 5, 9:08 AM · Restricted Project
evandro added a comment to D64805: [AArch64] Expand bcmp() for small comparisons.

Ping! 🔔

Mon, Aug 5, 8:07 AM · Restricted Project

Thu, Jul 25

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

🔔 ¡Ping! 🔔

Thu, Jul 25, 8:00 AM · Restricted Project

Wed, Jul 24

evandro updated the diff for D64805: [AArch64] Expand bcmp() for small comparisons.
Wed, Jul 24, 5:12 PM · Restricted Project
evandro commandeered D64805: [AArch64] Expand bcmp() for small comparisons.
Wed, Jul 24, 5:06 PM · Restricted Project
evandro committed rG5cd5f9b65ddb: [InstCombine] Swap order of checks to improve compile time (NFC) (authored by evandro).
[InstCombine] Swap order of checks to improve compile time (NFC)
Wed, Jul 24, 4:32 PM
evandro committed rL366962: [InstCombine] Swap order of checks to improve compile time (NFC).
[InstCombine] Swap order of checks to improve compile time (NFC)
Wed, Jul 24, 4:31 PM
evandro committed rG5202b55ca6d8: [CodeGen] Add missing comment (NFC) (authored by evandro).
[CodeGen] Add missing comment (NFC)
Wed, Jul 24, 2:46 PM
evandro committed rL366947: [CodeGen] Add missing comment (NFC).
[CodeGen] Add missing comment (NFC)
Wed, Jul 24, 2:46 PM

Tue, Jul 23

evandro added inline comments to D64805: [AArch64] Expand bcmp() for small comparisons.
Tue, Jul 23, 6:44 PM · Restricted Project

Jul 11 2019

evandro committed rGb21692672ee5: [InstCombine] Reorder pow() transformations (NFC) (authored by evandro).
[InstCombine] Reorder pow() transformations (NFC)
Jul 11 2019, 5:34 PM
evandro committed rL365851: [InstCombine] Reorder pow() transformations (NFC).
[InstCombine] Reorder pow() transformations (NFC)
Jul 11 2019, 5:34 PM
evandro updated the diff for D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Jul 11 2019, 12:02 PM · Restricted Project
evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

Ping! 🔔

Jul 11 2019, 8:32 AM · Restricted Project

Jul 9 2019

evandro accepted D64099: [InstCombine] pow(C,x) -> exp2(log2(C)*x).

It was actually harder to find a SPEC benchmark that triggered this case. As a matter of fact, it shows up only in CPU2017's 525.x264_r. But I can confirm that it works successfully.

Jul 9 2019, 2:27 PM · Restricted Project

Jul 5 2019

evandro added a comment to D64099: [InstCombine] pow(C,x) -> exp2(log2(C)*x).

I tested the first patch and the second revision with change to exp2 locally with simple examples to check for correctness and performance - and yes, I didn’t check previous revision with folding so a mistake was made.

I have no access to the SPEC benchmarks.

Jul 5 2019, 7:50 AM · Restricted Project

Jul 3 2019

evandro added a comment to D64099: [InstCombine] pow(C,x) -> exp2(log2(C)*x).

Since using exp2(log()) was mathematically incorrect, have you run any benchmark that validates the results, such SPEC CPU2006 or CPU2017? If so, what kind of improvement did it register?

Jul 3 2019, 12:39 PM · Restricted Project
evandro added inline comments to D64099: [InstCombine] pow(C,x) -> exp2(log2(C)*x).
Jul 3 2019, 8:34 AM · Restricted Project

Jun 27 2019

evandro updated the diff for D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Jun 27 2019, 2:42 PM · Restricted Project

Jun 26 2019

evandro committed rG42e13c83284e: [CodeGen] Improve formatting of jump tables (NFC) (authored by evandro).
[CodeGen] Improve formatting of jump tables (NFC)
Jun 26 2019, 8:13 AM
evandro committed rL364436: [CodeGen] Improve formatting of jump tables (NFC).
[CodeGen] Improve formatting of jump tables (NFC)
Jun 26 2019, 8:13 AM

Jun 20 2019

evandro committed rG944a7117e929: [CodeGen] Refactor check of suitability for a jump table (NFC) (authored by evandro).
[CodeGen] Refactor check of suitability for a jump table (NFC)
Jun 20 2019, 3:03 PM
evandro committed rL363992: [CodeGen] Refactor check of suitability for a jump table (NFC).
[CodeGen] Refactor check of suitability for a jump table (NFC)
Jun 20 2019, 3:00 PM
evandro committed rGaa10f050447d: [CodeGen] Fix formatting and comments (NFC) (authored by evandro).
[CodeGen] Fix formatting and comments (NFC)
Jun 20 2019, 9:33 AM
evandro committed rL363947: [CodeGen] Fix formatting and comments (NFC).
[CodeGen] Fix formatting and comments (NFC)
Jun 20 2019, 9:30 AM

Jun 19 2019

evandro committed rGa7ed3a627b4b: [AArch64] Improve jump tables testing (NFC) (authored by evandro).
[AArch64] Improve jump tables testing (NFC)
Jun 19 2019, 9:58 AM
evandro committed rL363839: [AArch64] Improve jump tables testing (NFC).
[AArch64] Improve jump tables testing (NFC)
Jun 19 2019, 9:56 AM
evandro committed rG54252b8243e3: [AArch64] Improve jump tables testing (NFC) (authored by evandro).
[AArch64] Improve jump tables testing (NFC)
Jun 19 2019, 9:33 AM
evandro committed rL363837: [AArch64] Improve jump tables testing (NFC).
[AArch64] Improve jump tables testing (NFC)
Jun 19 2019, 9:33 AM
evandro committed rG567f6c150dd7: [AVR] Change limit type to match the argument type (NFC) (authored by evandro).
[AVR] Change limit type to match the argument type (NFC)
Jun 19 2019, 9:10 AM
evandro committed rG56c45e93ab1b: [Hexagon] Change limit type to match the argument type (NFC) (authored by evandro).
[Hexagon] Change limit type to match the argument type (NFC)
Jun 19 2019, 9:10 AM
evandro committed rL363832: [AVR] Change limit type to match the argument type (NFC).
[AVR] Change limit type to match the argument type (NFC)
Jun 19 2019, 9:09 AM
evandro committed rL363831: [Hexagon] Change limit type to match the argument type (NFC).
[Hexagon] Change limit type to match the argument type (NFC)
Jun 19 2019, 9:08 AM

Jun 18 2019

evandro committed rG1933cbe86620: [test] Change comment wording (NFC) (authored by evandro).
[test] Change comment wording (NFC)
Jun 18 2019, 4:30 PM
evandro committed rL363751: [test] Change comment wording (NFC).
[test] Change comment wording (NFC)
Jun 18 2019, 4:28 PM

May 2 2019

evandro committed rG111df108e685: [AArch64] Update for Exynos (authored by evandro).
[AArch64] Update for Exynos
May 2 2019, 3:00 PM
evandro committed rL359834: [AArch64] Update for Exynos.
[AArch64] Update for Exynos
May 2 2019, 2:59 PM

Apr 30 2019

evandro committed rGea349f3ef592: [SimplifyLibCalls] Clean up code (NFC) (authored by evandro).
[SimplifyLibCalls] Clean up code (NFC)
Apr 30 2019, 11:35 AM
evandro committed rL359595: [SimplifyLibCalls] Clean up code (NFC).
[SimplifyLibCalls] Clean up code (NFC)
Apr 30 2019, 11:34 AM

Apr 25 2019

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

Yes, default, whether explicit or implicit, counts too, for the resources used inside the target only care about different addresses. In you example, a typical branch predictor will see up to 3 target addresses. Of course, branch predictors are trained by branches that are actually taken, so only target addresses that are executed count. Which opens the window for future work involving FDO or just the static heuristics.

Apr 25 2019, 6:25 AM · Restricted Project

Apr 19 2019

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

I still think looking at the number of cases isn't that much better than looking at the size of the range though. As you said, the point is to limit the load on the branch target predictor, and IIUC that's limited on the number of *different branch targets*, which is really orthogonal to the number of cases. I realize that we don't have that information as readily available, but do you agree that limiting the jump table to a certain number of different targets would be a better approach?

Apr 19 2019, 10:38 AM · Restricted Project
evandro added inline comments to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Apr 19 2019, 10:33 AM · Restricted Project
evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

What does this do for codesize?

Apr 19 2019, 10:32 AM · Restricted Project

Apr 5 2019

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

I also don't see exactly how the semantics of max-jump-table-size are changed with this patch? What am I missing? Can you upload it again with more context maybe?

Apr 5 2019, 9:45 AM · Restricted Project

Apr 4 2019

evandro added a comment to D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.

I'm still collecting data on other architectures, but I've observed improvements between 3 and 15% in some SPEC benchmarks, such as 253.perlbmk and 400.perlbench, and proprietary ones on AArch64.

Apr 4 2019, 5:13 PM · Restricted Project
evandro created D60295: [CodeGen] Replace -max-jump-table-size with -max-jump-table-targets.
Apr 4 2019, 5:11 PM · Restricted Project
evandro added a comment to D60287: [IR] Refactor attribute methods in Function class (NFC).

If anyone could give me a tip on how to avoid the review to be collapsed to just the part of whichever repo was hit first by a commit, I'd appreciate it.

Apr 4 2019, 3:49 PM · Restricted Project, Restricted Project
evandro committed rL357731: [IR] Refactor attribute methods in Function class (NFC).
[IR] Refactor attribute methods in Function class (NFC)
Apr 4 2019, 3:40 PM
evandro committed rG85bd3978ae4e: [IR] Refactor attribute methods in Function class (NFC) (authored by evandro).
[IR] Refactor attribute methods in Function class (NFC)
Apr 4 2019, 3:40 PM
evandro committed rC357731: [IR] Refactor attribute methods in Function class (NFC).
[IR] Refactor attribute methods in Function class (NFC)
Apr 4 2019, 3:40 PM
evandro closed D60287: [IR] Refactor attribute methods in Function class (NFC).
Apr 4 2019, 3:40 PM · Restricted Project, Restricted Project
evandro added a parent revision for D60287: [IR] Refactor attribute methods in Function class (NFC): D59852: [IR] Create new method in the Function class (NFC).
Apr 4 2019, 2:56 PM · Restricted Project, Restricted Project
evandro created D60287: [IR] Refactor attribute methods in Function class (NFC).
Apr 4 2019, 2:56 PM · Restricted Project, Restricted Project
evandro added a child revision for D59852: [IR] Create new method in the Function class (NFC): D60287: [IR] Refactor attribute methods in Function class (NFC).
Apr 4 2019, 2:56 PM · Restricted Project, Restricted Project

Apr 3 2019

evandro committed rG7c711ccf36e0: [IR] Create new method in `Function` class (NFC) (authored by evandro).
[IR] Create new method in `Function` class (NFC)
Apr 3 2019, 2:26 PM
evandro committed rL357638: [IR] Create new method in `Function` class (NFC).
[IR] Create new method in `Function` class (NFC)
Apr 3 2019, 2:25 PM
evandro committed rC357638: [IR] Create new method in `Function` class (NFC).
[IR] Create new method in `Function` class (NFC)
Apr 3 2019, 2:25 PM
evandro closed D59852: [IR] Create new method in the Function class (NFC).
Apr 3 2019, 2:25 PM · Restricted Project, Restricted Project
evandro added a comment to D59852: [IR] Create new method in the Function class (NFC).

That's a good idea to follow up on, following the pattern of hasOptNone().

Apr 3 2019, 1:38 PM · Restricted Project, Restricted Project
evandro added inline comments to D59852: [IR] Create new method in the Function class (NFC).
Apr 3 2019, 11:54 AM · Restricted Project, Restricted Project

Apr 2 2019

evandro added inline comments to D59852: [IR] Create new method in the Function class (NFC).
Apr 2 2019, 2:23 PM · Restricted Project, Restricted Project