evandro (Evandro Menezes)
User

Projects

User does not belong to any projects.

User Details

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

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

Recent Activity

Fri, Aug 17

evandro added a comment to D50900: [SimplifyLibCalls] Support pow(x, -0.5) in replacePowWithSqrt without NSZ/noInfs..

We were also thinking about expanding pow(x, n+0.5) -> x * x * x * ... * sqrt(x). Is this something you have also planned on adding?

Fri, Aug 17, 2:17 PM
evandro added a comment to D50900: [SimplifyLibCalls] Support pow(x, -0.5) in replacePowWithSqrt without NSZ/noInfs..

Can you please rebase it, for D50036 touched the same function?

Fri, Aug 17, 1:05 PM
evandro updated the diff for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().

Rebase after the preliminary patches rL340060 and rL340061.

Fri, Aug 17, 11:12 AM
evandro committed rL340061: [InstCombine] Refactor the simplification of pow() (NFC).
[InstCombine] Refactor the simplification of pow() (NFC)
Fri, Aug 17, 11:00 AM
evandro committed rL340060: [NFC] Expand test cases for simplifying pow().
[NFC] Expand test cases for simplifying pow()
Fri, Aug 17, 11:00 AM
evandro updated subscribers of D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).
Fri, Aug 17, 8:03 AM
evandro updated subscribers of D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Fri, Aug 17, 8:02 AM
evandro updated subscribers of D50035: [SLC] Expand simplification of pow() for vector types.
Fri, Aug 17, 8:01 AM
evandro updated subscribers of D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Fri, Aug 17, 8:01 AM
evandro updated subscribers of D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Fri, Aug 17, 8:00 AM

Thu, Aug 16

evandro committed rL339900: [NFC] Fix typo in test cases.
[NFC] Fix typo in test cases
Thu, Aug 16, 10:04 AM
evandro added a comment to D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).

Thank you.

Thu, Aug 16, 8:59 AM
evandro committed rL339887: [InstCombine] Expand the simplification of pow(x, 0.5) to sqrt(x).
[InstCombine] Expand the simplification of pow(x, 0.5) to sqrt(x)
Thu, Aug 16, 8:59 AM
evandro closed D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Thu, Aug 16, 8:58 AM

Wed, Aug 15

evandro updated the diff for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Wed, Aug 15, 11:47 AM
evandro updated the diff for D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Wed, Aug 15, 11:45 AM

Tue, Aug 14

evandro added inline comments to D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Tue, Aug 14, 9:28 AM
evandro added inline comments to D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Tue, Aug 14, 8:56 AM
evandro added inline comments to D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Tue, Aug 14, 8:46 AM
evandro added a comment to D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).

I'll commit the data type changes increasing type diversity on the side.

Tue, Aug 14, 8:41 AM

Mon, Aug 13

evandro committed rL339578: [SLC] Expand simplification of pow() for vector types.
[SLC] Expand simplification of pow() for vector types
Mon, Aug 13, 9:13 AM
evandro closed D50035: [SLC] Expand simplification of pow() for vector types.
Mon, Aug 13, 9:13 AM

Fri, Aug 10

evandro added a comment to D50035: [SLC] Expand simplification of pow() for vector types.

The dependent patches can be found in the Stack below: D49273 and D50036.

Fri, Aug 10, 2:19 PM
evandro added a comment to D50035: [SLC] Expand simplification of pow() for vector types.

Thank you.

Fri, Aug 10, 1:52 PM
evandro edited dependencies for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}(), added: 1; removed: 1.
Fri, Aug 10, 11:20 AM
evandro removed a dependent revision for D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x): D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Fri, Aug 10, 11:20 AM
evandro added a dependent revision for D50035: [SLC] Expand simplification of pow() for vector types: D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Fri, Aug 10, 11:20 AM
evandro added inline comments to D50035: [SLC] Expand simplification of pow() for vector types.
Fri, Aug 10, 11:17 AM
evandro updated the diff for D50035: [SLC] Expand simplification of pow() for vector types.

Added test for shrinking pow() when simplifying libcalls is disabled.

Fri, Aug 10, 11:17 AM
evandro added inline comments to D50035: [SLC] Expand simplification of pow() for vector types.
Fri, Aug 10, 8:47 AM

Thu, Aug 9

evandro updated the diff for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().

Remove additional simplification when exp10() is the base in pow(), since it's not enabled by many targets.

Thu, Aug 9, 3:02 PM
evandro updated the summary of D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Thu, Aug 9, 2:28 PM
evandro removed a dependency for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}(): D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Thu, Aug 9, 2:23 PM
evandro removed a dependent revision for D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x): D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Thu, Aug 9, 2:23 PM
evandro abandoned D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

OK, then.

Thu, Aug 9, 2:20 PM
evandro added inline comments to D50035: [SLC] Expand simplification of pow() for vector types.
Thu, Aug 9, 1:42 PM
evandro committed rL339356: [ARM] Adjust the feature set for Exynos.
[ARM] Adjust the feature set for Exynos
Thu, Aug 9, 9:35 AM
evandro closed D50396: [ARM] Replace processor check with feature.

Closed by commit rL339354

Thu, Aug 9, 9:16 AM
evandro committed rL339354: [ARM] Replace processor check with feature.
[ARM] Replace processor check with feature
Thu, Aug 9, 9:14 AM

Tue, Aug 7

evandro added a comment to D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).

Ping! πŸ””

Tue, Aug 7, 11:14 AM
evandro added a comment to D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

Ping! πŸ””

Tue, Aug 7, 11:14 AM
evandro added a comment to D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().

Ping! πŸ””

Tue, Aug 7, 11:13 AM
evandro created D50396: [ARM] Replace processor check with feature.
Tue, Aug 7, 10:05 AM

Mon, Aug 6

evandro committed rL339046: [SLC] Fix shrinking of pow().
[SLC] Fix shrinking of pow()
Mon, Aug 6, 12:40 PM
evandro closed D50113: [SLC] Fix shrinking of pow().
Mon, Aug 6, 12:40 PM

Fri, Aug 3

evandro updated the diff for D50113: [SLC] Fix shrinking of pow().

Keep the double precision pow() when the result is too.

Fri, Aug 3, 11:04 AM
evandro added a comment to D50113: [SLC] Fix shrinking of pow().

Refactored the helper functions for shrinking unary and binary functions into a single one, while keeping all their functionality, in rL338905.

Fri, Aug 3, 10:52 AM
evandro committed rL338905: [SLC] Refactor shrinking of functions (NFC).
[SLC] Refactor shrinking of functions (NFC)
Fri, Aug 3, 10:50 AM

Thu, Aug 2

evandro added a comment to D50113: [SLC] Fix shrinking of pow().

Alternatively, optimizeBinaryDoubleFP() could be fixed to shrink just float f = pow(), while keeping its other users, f{min,max}() and copysign() happy, which should be easy to satisfy, given how simple these functions are.

Thu, Aug 2, 3:07 PM
evandro added a comment to D50113: [SLC] Fix shrinking of pow().

I'd like to get this right... both the CheckRetType check, and the "infinite loop" check from optimizeUnaryDoubleFP are probably relevant. Can we share code between the two functions?

Maybe the CheckRetType check isn't critical if we're only doing this transform by default when afn is enabled, but it's still losing a lot of bits, particularly if the input is supposed to be an exact number. pow(2.f, 0.5f) is a lot different from (double)powf(2.f, 0.5f).

(If you want to fix the potential miscompile for 7.0, I'd accept a patch to just completely disable shrinking for pow.)

Thu, Aug 2, 2:45 PM
evandro updated the diff for D50035: [SLC] Expand simplification of pow() for vector types.

Added test cases for vector types in pow(x, n).

Thu, Aug 2, 9:21 AM
evandro retitled D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}() from [SLC] Expand the simplification of pow({e,2,10}, y) to exp{,2,10}() to [SLC] Expand the simplification of pow({e,2,10}, y) to exp{,2,10}(y).
Thu, Aug 2, 9:17 AM
evandro retitled D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}() from [SLC] Refactor the simplifications involving pow() and exp{,2,10}() to [SLC] Expand the simplification of pow({e,2,10}, y) to exp{,2,10}().
Thu, Aug 2, 9:17 AM
evandro added inline comments to D50113: [SLC] Fix shrinking of pow().
Thu, Aug 2, 9:10 AM
evandro committed rL338730: [SLC] Refactor simplification of pow() (NFC).
[SLC] Refactor simplification of pow() (NFC)
Thu, Aug 2, 8:44 AM
evandro added inline comments to D50035: [SLC] Expand simplification of pow() for vector types.
Thu, Aug 2, 8:35 AM

Wed, Aug 1

evandro added a comment to D50113: [SLC] Fix shrinking of pow().

I think we should commit this based on fixing the miscompile alone; we can debate the other diff in a follow-on patch if needed.

Wed, Aug 1, 9:25 AM
evandro added a comment to D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).

A specialized transcendental function is inherently faster than a generic one. In the case of cbrt() this is measurable in popular benchmarks, like CPU2000 and CPU2006. I can see the appeal of converging particular cases back to one generic case in the middle end, but IMO it's the opposite way in the run time environment.

Wed, Aug 1, 8:08 AM

Tue, Jul 31

evandro updated the summary of D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Tue, Jul 31, 6:14 PM
evandro updated the diff for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Tue, Jul 31, 6:14 PM
evandro updated the diff for D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Tue, Jul 31, 6:13 PM
evandro updated the diff for D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Tue, Jul 31, 6:11 PM
evandro updated the diff for D50035: [SLC] Expand simplification of pow() for vector types.
Tue, Jul 31, 6:09 PM
evandro updated the diff for D50113: [SLC] Fix shrinking of pow().
Tue, Jul 31, 6:07 PM
evandro committed rL338463: [PATCH] [SLC] Test simplification of pow() for vector types (NFC).
[PATCH] [SLC] Test simplification of pow() for vector types (NFC)
Tue, Jul 31, 5:31 PM
evandro added inline comments to D50113: [SLC] Fix shrinking of pow().
Tue, Jul 31, 4:14 PM
evandro added inline comments to D50113: [SLC] Fix shrinking of pow().
Tue, Jul 31, 4:07 PM
evandro added inline comments to D50113: [SLC] Fix shrinking of pow().
Tue, Jul 31, 4:00 PM
evandro created D50113: [SLC] Fix shrinking of pow().
Tue, Jul 31, 3:21 PM
evandro committed rL338446: [SLC] Refactor the simplication of pow() (NFC).
[SLC] Refactor the simplication of pow() (NFC)
Tue, Jul 31, 3:11 PM
evandro abandoned D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).

Agreed.

Tue, Jul 31, 2:30 PM
evandro added a comment to D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).

Why is this the right IR canonicalization?

Tue, Jul 31, 12:57 PM

Mon, Jul 30

evandro updated subscribers of D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Mon, Jul 30, 7:08 PM
evandro edited reviewers for D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x), added: efriedma; removed: davide, beanz.
Mon, Jul 30, 7:07 PM
evandro updated the diff for D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).
Mon, Jul 30, 7:07 PM
evandro updated the diff for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Mon, Jul 30, 7:06 PM
evandro updated the diff for D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).
Mon, Jul 30, 7:03 PM
evandro added dependent revisions for D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x): D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x), D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().
Mon, Jul 30, 7:01 PM
evandro added a dependency for D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x): D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Mon, Jul 30, 7:01 PM
evandro added a dependency for D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}(): D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Mon, Jul 30, 7:01 PM
evandro added a dependency for D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x): D50035: [SLC] Expand simplification of pow() for vector types.
Mon, Jul 30, 6:59 PM
evandro added a dependent revision for D50035: [SLC] Expand simplification of pow() for vector types: D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Mon, Jul 30, 6:59 PM
evandro created D50036: [SLC] Expand the simplification of pow(x, 0.5) to sqrt(x).
Mon, Jul 30, 6:59 PM
evandro created D50035: [SLC] Expand simplification of pow() for vector types.
Mon, Jul 30, 6:55 PM
evandro committed rL338266: [SLC] Refactor the simplication of pow() (NFC).
[SLC] Refactor the simplication of pow() (NFC)
Mon, Jul 30, 9:20 AM

Fri, Jul 27

evandro added a comment to D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

Committed rL338152 to add the base line test case pow-cbrt.ll.

Fri, Jul 27, 11:58 AM
evandro committed rL338152: [SLC] Test simplification of pow(x, 0.333...) to cbrt(x) (NFC).
[SLC] Test simplification of pow(x, 0.333...) to cbrt(x) (NFC)
Fri, Jul 27, 11:57 AM
evandro committed rL338147: [ARM] Add new target feature to fuse literal generation.
[ARM] Add new target feature to fuse literal generation
Fri, Jul 27, 11:17 AM
evandro closed D49563: [ARM] Add new target feature to fuse literal generation.
Fri, Jul 27, 11:17 AM
evandro added a comment to D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

OK. Please, stay tuned.

Fri, Jul 27, 11:07 AM
evandro added inline comments to D49563: [ARM] Add new target feature to fuse literal generation.
Fri, Jul 27, 10:11 AM
evandro added inline comments to D49563: [ARM] Add new target feature to fuse literal generation.
Fri, Jul 27, 10:09 AM
evandro added a comment to D49306: [SLC] Simplify pow(x, 0.25) to sqrt(sqrt(x)).

Β‘Ping! πŸ””πŸ””

Fri, Jul 27, 8:18 AM
evandro added a comment to D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

Β‘Ping! πŸ””πŸ””

Fri, Jul 27, 8:18 AM
evandro added a comment to D49273: [InstCombine] Expand the simplification of pow() involving exp{,2}().

Β‘Ping! πŸ””πŸ””

Fri, Jul 27, 8:18 AM
evandro added a comment to D49563: [ARM] Add new target feature to fuse literal generation.

Ping! πŸ””

Fri, Jul 27, 8:17 AM

Thu, Jul 26

evandro added a comment to D49830: MacroFusion: Fix macro fusion with ExitSU failing in top-down scheduling.

Thank you for this fix.

Thu, Jul 26, 7:54 AM

Jul 20 2018

evandro committed rL337575: [ARM] Add new feature to enable optimizing the VFP registers.
[ARM] Add new feature to enable optimizing the VFP registers
Jul 20 2018, 9:54 AM
evandro closed D49463: [ARM] Add new feature to enable optimizing the VFP registers.
Jul 20 2018, 9:54 AM
evandro added a comment to D49040: [SLC] Simplify pow(x, 0.333...) to cbrt(x).

Ping! πŸ””

Jul 20 2018, 8:07 AM