Page MenuHomePhabricator

etiotto (Ettore Tiotto)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 11 2019, 9:55 AM (217 w, 5 h)

Recent Activity

Mar 10 2023

etiotto accepted rG02f9cf9266c3: [MLIR] Remove LLVM typed pointer support.

LLVM does not support typed pointers anymore, see https://llvm.org/docs/OpaquePointers.html#transition-state. If you are not ready to migrate to opaque pointers yet, you need to stay on the release/16.x branch.

Mar 10 2023, 8:30 AM · Restricted Project, Restricted Project
etiotto raised a concern with rG02f9cf9266c3: [MLIR] Remove LLVM typed pointer support.

Guys we have a project that is based on MLIR and we just merged this change in.

Mar 10 2023, 7:52 AM · Restricted Project, Restricted Project

Apr 11 2022

etiotto accepted D123400: [LoopCacheAnalysis] Consider dimension depth of the subscript reference when calculating cost.

LGTM

Apr 11 2022, 7:22 AM · Restricted Project, Restricted Project, Restricted Project

Nov 4 2021

etiotto accepted D113185: Add NoOpLoopNestPass and LOOPNEST_PASS macro.

LGTM

Nov 4 2021, 8:17 AM · Restricted Project

Aug 9 2021

etiotto committed rG41e3ac398c3a: [AIX]: Fix option processing for -b (authored by etiotto).
[AIX]: Fix option processing for -b
Aug 9 2021, 5:07 PM
etiotto closed D107786: [AIX]: Fix option processing for -b.
Aug 9 2021, 5:07 PM · Restricted Project, Restricted Project
etiotto added inline comments to D107786: [AIX]: Fix option processing for -b.
Aug 9 2021, 4:45 PM · Restricted Project, Restricted Project
etiotto updated the diff for D107786: [AIX]: Fix option processing for -b.

Address code review comment.

Aug 9 2021, 4:25 PM · Restricted Project, Restricted Project
etiotto updated the diff for D107786: [AIX]: Fix option processing for -b.

Adapting test for -b option processing on AIX

Aug 9 2021, 4:18 PM · Restricted Project, Restricted Project
etiotto updated the summary of D107786: [AIX]: Fix option processing for -b.
Aug 9 2021, 3:08 PM · Restricted Project, Restricted Project
etiotto updated the summary of D107786: [AIX]: Fix option processing for -b.
Aug 9 2021, 3:07 PM · Restricted Project, Restricted Project
etiotto requested review of D107786: [AIX]: Fix option processing for -b.
Aug 9 2021, 3:07 PM · Restricted Project, Restricted Project

May 25 2021

etiotto abandoned D102005: [libcxx]: Unroll std::find on AIX.
May 25 2021, 6:11 AM · Restricted Project

May 17 2021

etiotto added a comment to D102344: [SCEV]: Teach SCEV about llvm.annotation intrinsic.

I am referring to the summary:

The llvm.annotation intrinsic returns the first argument passed to it.

As mentioned, this is not a sufficient condition to be just ignored. The summary should also mention that by the LLVM language reference, " are ignored by code generation and optimization."

Suggestion:

As by the LLVM language reference, the llvm.annotation intrinsic and no effect on code generation and optimization (https://llvm.org/docs/LangRef.html) and therefore can be safely replaced by its first argument. This patch 'teaches' SCEV the semantics of that builtin function.

May 17 2021, 6:59 AM · Restricted Project, Restricted Project
etiotto updated the summary of D102344: [SCEV]: Teach SCEV about llvm.annotation intrinsic.
May 17 2021, 6:58 AM · Restricted Project, Restricted Project

May 13 2021

etiotto added a comment to D102348: [Instructions]: Calls marked with inaccessiblememonly attribute should be considered to not read/write memory.

That depends on the precise semantics @llvm.annotation is supposed to have, with which I'm not familiar, and which LangRef does not specify particularly clearly. Is it okay to drop an @llvm.annotation() whose return value is not used? If "no", then marking it readonly is not possible, it will be dropped as dead code. Is it okay to hoist @llvm.annotation() inside an unconditional loop header out of the loop? If "no", then dropping inaccessiblememonly is not possible either (being non-speculatable would prevent hoisting out of a conditional loop header, but not an unconditional one).

May 13 2021, 11:59 AM · Restricted Project
etiotto added a comment to D102344: [SCEV]: Teach SCEV about llvm.annotation intrinsic.

Macro testcase:

From the language reference:

they are ignored by code generation and optimization.

I agree that this means the annotation can be ignored. But it returning the first argument (as mentioned in the summary) is not sufficient to conclude that, e.g. it could have side effects.

May 13 2021, 11:50 AM · Restricted Project, Restricted Project

May 12 2021

etiotto added a comment to D102348: [Instructions]: Calls marked with inaccessiblememonly attribute should be considered to not read/write memory.

This looks wrong to me. To give one example: Accessing inaccessible memory is the typical way to model side-effects. mayHaveSideEffects() is defined in terms of mayWriteToMemory(). This change makes inaccessiblememonly side-effect free. Oops.

I do think that "only writes accessible memory" is a useful predicate, and many -- but not all -- current callers of mayWriteToMemory() can be switched to it. I would recommend to introduce mayWriteAccessibleMemory() / mayReadAccessibleMemory() and then migrate call-sites after review of the guarantees they actually need.

May 12 2021, 1:55 PM · Restricted Project
etiotto added a comment to D102348: [Instructions]: Calls marked with inaccessiblememonly attribute should be considered to not read/write memory.

I'm not exactly sure what it means to "access memory that is not accessible by the module being compiled.". My guess is that it's for things like intrinsics that take a global string as argument (eg. the file name), for compile-time mapping, but don't get lowered to any instructions that actually access that memory in the final generated assembly. Is that correct, or are there other examples to consider?

May 12 2021, 1:27 PM · Restricted Project
etiotto requested review of D102348: [Instructions]: Calls marked with inaccessiblememonly attribute should be considered to not read/write memory.
May 12 2021, 11:50 AM · Restricted Project
etiotto updated the summary of D102344: [SCEV]: Teach SCEV about llvm.annotation intrinsic.
May 12 2021, 11:23 AM · Restricted Project, Restricted Project
etiotto requested review of D102344: [SCEV]: Teach SCEV about llvm.annotation intrinsic.
May 12 2021, 11:22 AM · Restricted Project, Restricted Project

May 6 2021

etiotto added a reviewer for D102005: [libcxx]: Unroll std::find on AIX: Restricted Project.
May 6 2021, 11:28 AM · Restricted Project
etiotto requested review of D102005: [libcxx]: Unroll std::find on AIX.
May 6 2021, 10:05 AM · Restricted Project

Mar 30 2021

etiotto accepted D99076: [PowerPC] [MachineLICM] Enable hoisting of caller preserved registers on AIX.

LGTM.

Mar 30 2021, 11:42 AM · Restricted Project

Dec 14 2020

etiotto closed D90641: [compiler-rt][AIX]: Link compiler-rt profile library when -fprofile-generate is specified.
Dec 14 2020, 1:38 PM · Restricted Project

Nov 19 2020

etiotto added inline comments to D91682: [LoopInterchange] Fix the checking of tightly nested loop.
Nov 19 2020, 11:41 AM · Restricted Project

Nov 18 2020

etiotto added inline comments to D91682: [LoopInterchange] Fix the checking of tightly nested loop.
Nov 18 2020, 2:50 PM · Restricted Project

Nov 4 2020

etiotto committed rG7e2edf973b64: [compiler-rt][AIX]: Link compiler-rt profile library when -fprofile-generate is… (authored by etiotto).
[compiler-rt][AIX]: Link compiler-rt profile library when -fprofile-generate is…
Nov 4 2020, 6:56 AM

Nov 3 2020

etiotto committed rGe1af54296c52: [compiler-rt][profile][AIX]: Enable compiler-rt profile build on AIX (authored by etiotto).
[compiler-rt][profile][AIX]: Enable compiler-rt profile build on AIX
Nov 3 2020, 8:47 AM
etiotto closed D90619: [compiler-rt][profile][AIX]: Enable compiler-rt profile build on AIX.
Nov 3 2020, 8:47 AM · Restricted Project

Nov 2 2020

etiotto requested review of D90641: [compiler-rt][AIX]: Link compiler-rt profile library when -fprofile-generate is specified.
Nov 2 2020, 1:18 PM · Restricted Project
etiotto committed rG4274cbba1c69: [PartialInliner]: Handle code regions in a switch stmt cases (authored by etiotto).
[PartialInliner]: Handle code regions in a switch stmt cases
Nov 2 2020, 11:33 AM
etiotto closed D89911: [PartialInliner]: Handle code regions in a switch stmt cases.
Nov 2 2020, 11:33 AM · Restricted Project
etiotto requested review of D90619: [compiler-rt][profile][AIX]: Enable compiler-rt profile build on AIX.
Nov 2 2020, 8:10 AM · Restricted Project

Oct 30 2020

etiotto updated the diff for D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

Address code review comments.

Oct 30 2020, 11:44 AM · Restricted Project
etiotto added inline comments to D89911: [PartialInliner]: Handle code regions in a switch stmt cases.
Oct 30 2020, 11:42 AM · Restricted Project

Oct 29 2020

etiotto added a comment to D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

ping

Oct 29 2020, 1:00 PM · Restricted Project

Oct 26 2020

etiotto updated the diff for D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

Fix formatting.

Oct 26 2020, 8:06 AM · Restricted Project

Oct 22 2020

etiotto updated the diff for D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

Add LLVM_DEBUG stmts.

Oct 22 2020, 12:37 PM · Restricted Project
etiotto committed rGe6521ce06425: [NFC][PartialInliner]: Clean up code (authored by etiotto).
[NFC][PartialInliner]: Clean up code
Oct 22 2020, 11:40 AM
etiotto closed D89895: [NFC][PartialInliner]: Clean up code .
Oct 22 2020, 11:40 AM · Restricted Project
etiotto added a comment to D89895: [NFC][PartialInliner]: Clean up code .

Note: this failure looks bogus to me as it also happens in other PRs like https://reviews.llvm.org/D89964

linux > HWAddressSanitizer-x86_64.TestCases::sizes.cpp
Script:
--
: 'RUN: at line 3';      /mnt/disks/ssd0/agent/llvm-project/build/./bin/clang  --driver-mode=g++  -m64  -gline-tables-only -fsanitize=hwaddress -fuse-ld=lld -mcmodel=large -mllvm -hwasan-globals -mllvm -hwasan-use-short-granules -mllvm -hwasan-instrument-landing-pads=0 -mllvm -hwasan-instrument-personality-functions /mnt/disks/ssd0/agent/llvm-project/compiler-rt/test/hwasan/TestCases/sizes.cpp -nostdlib++ -lstdc++ -o /mnt/disks/ssd0/agent/llvm-project/build/projects/compiler-rt/test/hwasan/X86_64/TestCases/Output/sizes.cpp.tmp
Oct 22 2020, 9:07 AM · Restricted Project
etiotto updated the diff for D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

Address comments.

Oct 22 2020, 9:00 AM · Restricted Project
etiotto added reviewers for D89911: [PartialInliner]: Handle code regions in a switch stmt cases: fhahn, gyiu.
Oct 22 2020, 8:59 AM · Restricted Project
etiotto retitled D89895: [NFC][PartialInliner]: Clean up code from [NFC][Partial Inline]: Clean up code to [NFC][PartialInliner]: Clean up code .
Oct 22 2020, 8:01 AM · Restricted Project
etiotto updated the summary of D89911: [PartialInliner]: Handle code regions in a switch stmt cases.
Oct 22 2020, 6:53 AM · Restricted Project
etiotto updated the diff for D89911: [PartialInliner]: Handle code regions in a switch stmt cases.

Address comments

Oct 22 2020, 6:52 AM · Restricted Project

Oct 21 2020

etiotto requested review of D89911: [PartialInliner]: Handle code regions in a switch stmt cases.
Oct 21 2020, 2:26 PM · Restricted Project
etiotto updated the diff for D89895: [NFC][PartialInliner]: Clean up code .

Fix clang-format

Oct 21 2020, 12:57 PM · Restricted Project
etiotto requested review of D89895: [NFC][PartialInliner]: Clean up code .
Oct 21 2020, 9:40 AM · Restricted Project

Oct 2 2020

etiotto added a comment to D88669: [ValueTracking] Add tracking of the alignment assume bundle.

Look OK to me but you should also add other reviewers.

Oct 2 2020, 10:57 AM · Restricted Project

Sep 10 2020

etiotto committed rG6b13cfe7399b: [ArgumentPromotion]: Copy function metadata after promoting arguments (authored by etiotto).
[ArgumentPromotion]: Copy function metadata after promoting arguments
Sep 10 2020, 10:10 AM
etiotto closed D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.
Sep 10 2020, 10:10 AM · Restricted Project

Sep 9 2020

etiotto added inline comments to D87045: [LoopNest] Handle loop-nest passes in LoopPassManager.
Sep 9 2020, 10:44 AM · Restricted Project

Sep 2 2020

etiotto retitled D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments from [ArgumentPromotion]: Copy function annotation after promoting arguments to [ArgumentPromotion]: Copy function metadata after promoting arguments.
Sep 2 2020, 7:20 AM · Restricted Project

Sep 1 2020

etiotto added a comment to D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.

ping

Sep 1 2020, 6:40 AM · Restricted Project

Aug 31 2020

etiotto added inline comments to rG7ed8124d46f9: [HeapProf] Clang and LLVM support for heap profiling instrumentation.
Aug 31 2020, 2:19 PM

Aug 27 2020

etiotto updated the diff for D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.

Address code review comments.

Aug 27 2020, 9:30 AM · Restricted Project
etiotto added inline comments to D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.
Aug 27 2020, 9:29 AM · Restricted Project
etiotto updated the diff for D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.

Fix quotes in profile.ll

Aug 27 2020, 8:01 AM · Restricted Project

Aug 26 2020

etiotto requested review of D86630: [ArgumentPromotion]: Copy function metadata after promoting arguments.
Aug 26 2020, 8:29 AM · Restricted Project

Aug 24 2020

etiotto added a comment to D86262: [LoopIdiomRecognizePass] Options to disable part or the entire Loop Idiom Recognize Pass.

Here are a couple of programs to test the performance of a simple memset vs a simple initialization loop. On my system (PPC) even this short init. loop is slower than the memset.

% cat loop.c
#include <string.h>
int main() {
  int A[N];
  for (int n=0; n<STEPS; ++n)
    for(int i=0;i<N;++i)
      A[i] = 0;
  return A[0];
}

% gcc -O0 loop.c -DN=10 -DSTEPS=1000000; time ./a.out
./a.out 0.10s user 0.00s system 99% cpu 0.099 total

% cat memset.c
#include <string.h>
int main() {
  int A[N];
  for (int n=0; n<STEPS; ++n)
    memset(A, 0, N * sizeof(int));
  return A[0];
}

% gcc -O0 memset.c -DN=10 -DSTEPS=1000000; time ./a.out
./a.out 0.02s user 0.00s system 99% cpu 0.022 total

Aug 24 2020, 7:28 AM · Restricted Project
etiotto accepted D86262: [LoopIdiomRecognizePass] Options to disable part or the entire Loop Idiom Recognize Pass.

Transforming a loop into a memset or memcpy is not *always* profitable (it depends on how many elements are initialized/copied and on the efficiency of the target architecture implementation for those libraries) but is often better than a loop. The low level optimizer should change short memset/memcpy back into a sequence of assignments, IMO this should not be done in opt because the exact length for which memset is less profitable than individual assignment is a function of the target architecture. As for this PR, adding an option to disable the optimization is a good thing as it provides more flexibility to users that for whatever reason do not want the transformation to run (and is also handy for compiler developers when debugging code). And more flexibility is a good thing.

Aug 24 2020, 7:01 AM · Restricted Project
etiotto added a comment to D86262: [LoopIdiomRecognizePass] Options to disable part or the entire Loop Idiom Recognize Pass.

I'd like to see a PhaseOrdering test showing the IR that is not optimized due to the DA being unaware about these intrinsics.

Aug 24 2020, 6:49 AM · Restricted Project

Aug 21 2020

etiotto accepted D86133: [LoopNest] False negative of `arePerfectlyNested` with LCSSA loops.
Aug 21 2020, 9:44 AM · Restricted Project

Aug 13 2020

etiotto added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

I have trouble finding the definition of LoopNestAnalysis::run.

Aug 13 2020, 2:05 PM · Restricted Project

Jul 31 2020

etiotto added inline comments to D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.
Jul 31 2020, 1:55 PM · Restricted Project

Jul 30 2020

etiotto committed rG36a4f1037628: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z (authored by etiotto).
Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z
Jul 30 2020, 11:06 AM
etiotto closed D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.
Jul 30 2020, 11:06 AM · Restricted Project

Jul 29 2020

etiotto added a comment to D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.

@uweigand and @Kai I forgot to fix a test case. Now fixed are you still ok with the test case change?

Jul 29 2020, 2:01 PM · Restricted Project
etiotto updated the diff for D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.

Fix test case for PPC64 and SystemZ

Jul 29 2020, 1:58 PM · Restricted Project
etiotto updated the diff for D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.

Fix formatting

Jul 29 2020, 7:07 AM · Restricted Project

Jul 28 2020

etiotto requested review of D84764: Fix computeHostNumPhysicalCores() for Linux on POWER and Linux on Z.
Jul 28 2020, 8:56 AM · Restricted Project

Jul 2 2020

etiotto added a comment to D82895: [LoopInfo] empty() -> isInnermost(), add isOutermost().

I think that isInnermost() would make even more sense.

I'm fine with adding bool isInnermost() const { return empty(); } and while we are at it, bool isOutermost().

@fhahn @Meinersbur @Whitney @etiotto Objections?

Jul 2 2020, 2:36 PM · Restricted Project

Jun 4 2020

etiotto added inline comments to D81053: [LoopUnroll] Allow loops with multiple exiting blocks where loop latch is not necessary one of them..
Jun 4 2020, 8:44 AM · Restricted Project

May 28 2020

etiotto accepted D80477: [LoopUnroll] Support loops with exiting block that is neither header nor latch..

LGTM

May 28 2020, 7:34 AM · Restricted Project

May 25 2020

etiotto added inline comments to D80477: [LoopUnroll] Support loops with exiting block that is neither header nor latch..
May 25 2020, 10:42 AM · Restricted Project
etiotto updated the summary of D80477: [LoopUnroll] Support loops with exiting block that is neither header nor latch..
May 25 2020, 10:10 AM · Restricted Project

Mar 13 2020

etiotto retitled D75920: [LoopCacheAnalysis] Improve cost heuristic. from [LoopCacheAnalysis}: Improve cost heuristic. to [LoopCacheAnalysis] Improve cost heuristic..
Mar 13 2020, 11:49 AM · Restricted Project

Mar 12 2020

etiotto updated the diff for D75920: [LoopCacheAnalysis] Improve cost heuristic..
Mar 12 2020, 8:40 AM · Restricted Project

Mar 10 2020

etiotto created D75920: [LoopCacheAnalysis] Improve cost heuristic..
Mar 10 2020, 6:58 AM · Restricted Project

Feb 12 2020

etiotto added inline comments to D68789: [LoopNest]: Analysis to discover properties of a loop nest..
Feb 12 2020, 7:09 AM · Restricted Project

Feb 11 2020

etiotto added a comment to D73801: [LoopFission]: Loop Fission Interference Graph (FIG).

I choose to name the pass Loop Fission to avoid confusion with the existing LoopDistribution pass (eventually Loop Fission should replace that pass). Also Loop Fission is the opposite of Loop Fusion :-) ?

Feb 11 2020, 7:50 AM · Restricted Project
etiotto updated the diff for D68789: [LoopNest]: Analysis to discover properties of a loop nest..

Addressed review comments from @Meinersbur

Feb 11 2020, 7:42 AM · Restricted Project

Jan 31 2020

etiotto updated the diff for D73801: [LoopFission]: Loop Fission Interference Graph (FIG).
Jan 31 2020, 1:12 PM · Restricted Project
etiotto added reviewers for D73801: [LoopFission]: Loop Fission Interference Graph (FIG): Meinersbur, kbarton, bmahjour, Whitney, fhahn, zhongduo, amehsan.
Jan 31 2020, 12:53 PM · Restricted Project
etiotto updated subscribers of D73801: [LoopFission]: Loop Fission Interference Graph (FIG).
Jan 31 2020, 12:53 PM · Restricted Project
etiotto created D73801: [LoopFission]: Loop Fission Interference Graph (FIG).
Jan 31 2020, 12:44 PM · Restricted Project

Jan 30 2020

etiotto added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

ping

Jan 30 2020, 12:12 PM · Restricted Project

Jan 13 2020

etiotto added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

ping

Jan 13 2020, 7:25 AM · Restricted Project

Dec 18 2019

etiotto added inline comments to D71578: [CodeMoverUtils] Improve IsControlFlowEquivalent..
Dec 18 2019, 2:19 PM · Restricted Project
etiotto updated the diff for D68789: [LoopNest]: Analysis to discover properties of a loop nest..

Addressing code review comments.

Dec 18 2019, 1:50 PM · Restricted Project
etiotto added inline comments to D68789: [LoopNest]: Analysis to discover properties of a loop nest..
Dec 18 2019, 1:50 PM · Restricted Project

Dec 10 2019

etiotto added inline comments to D68789: [LoopNest]: Analysis to discover properties of a loop nest..
Dec 10 2019, 1:43 PM · Restricted Project
etiotto updated the diff for D68789: [LoopNest]: Analysis to discover properties of a loop nest..

Based on the feedback received during code review I have added a new public member function called 'getPerfectLoops' which can be used to retrieve a list of loops that are perfect with respect to each other.
For example, given the following loop nest containing 4 loops, 'getPerfectLoops' would return {{L1,L2},{L3,L4}}.

for(i) // L1
  for(j) // L2
    <code>
    for(k) // L3
       for(l) // L4
Dec 10 2019, 1:42 PM · Restricted Project

Nov 20 2019

etiotto added a comment to D68789: [LoopNest]: Analysis to discover properties of a loop nest..

[suggestion] Add a methods that returns/fills a vector with all the Loop*s that are part of the perfect loop nest.

That sounds like a good idea. I'd suggest returning a vector of vectors actually in case where there are multiple perfect sub nests in a loop nest. ie:

L1
  L2
   <code>
    L3
      L4
        L5

return:
{{L1,L2},{L3,L4,L5}}

Nov 20 2019, 1:32 PM · Restricted Project
etiotto updated the diff for D68789: [LoopNest]: Analysis to discover properties of a loop nest..

Addressing code review comments from Michael.

Nov 20 2019, 9:45 AM · Restricted Project
etiotto added inline comments to D68789: [LoopNest]: Analysis to discover properties of a loop nest..
Nov 20 2019, 9:36 AM · Restricted Project

Nov 4 2019

etiotto updated the diff for D69821: [NFC]: Fix PVS Studio warning in LoopNestAnalysis.
Nov 4 2019, 2:35 PM · Restricted Project