mehdi_amini (Mehdi AMINI)
User

Projects

User does not belong to any projects.

User Details

User Since
Apr 30 2013, 5:34 PM (207 w, 6 d)

Recent Activity

Sun, Apr 23

mehdi_amini added a comment to D32401: [Devirtualization] insert placement new barrier with -O0.

To not break LTO with different optimizations levels, we should insert the barrier regardles of optimization level.

Sun, Apr 23, 1:51 PM

Sat, Apr 22

mehdi_amini accepted D32393: [ThinLTO/Summary] Rename anonymous globals as last action in the per-TU -O0 pipeline.

LGTM.

Sat, Apr 22, 9:57 PM

Fri, Apr 21

mehdi_amini added inline comments to D32362: Update Jenkins Build.py to check and upgrade svn version in working dir as necessary..
Fri, Apr 21, 3:44 PM · Restricted Project
mehdi_amini added inline comments to D32362: Update Jenkins Build.py to check and upgrade svn version in working dir as necessary..
Fri, Apr 21, 1:17 PM · Restricted Project
mehdi_amini added inline comments to D32362: Update Jenkins Build.py to check and upgrade svn version in working dir as necessary..
Fri, Apr 21, 1:17 PM · Restricted Project
mehdi_amini added a comment to D31739: Add markup for libc++ dylib availability.

@mclow.lists you mentioned on IRC you may have some suggestions to make this less noisy? Do you still plan to review?

Fri, Apr 21, 1:04 PM
mehdi_amini added a comment to D31739: Add markup for libc++ dylib availability.

@mclow.lists you mentioned on IRC you may have some suggestions to make this less noisy? Do you still plan to review?

Fri, Apr 21, 11:17 AM
mehdi_amini committed rL300996: Add a -noinstall option to the build.py script to allow building only..
Add a -noinstall option to the build.py script to allow building only.
Fri, Apr 21, 9:29 AM

Thu, Apr 20

mehdi_amini updated the diff for D31739: Add markup for libc++ dylib availability.

Address comments from @jroelofs and @arphaman

Thu, Apr 20, 10:49 PM
mehdi_amini added inline comments to D31739: Add markup for libc++ dylib availability.
Thu, Apr 20, 10:48 PM
mehdi_amini added inline comments to D31990: limit to 2 parallel links when using thinlto.
Thu, Apr 20, 7:26 PM
mehdi_amini added inline comments to D32061: [wip] Bitcode: Write the irsymtab to disk..
Thu, Apr 20, 3:48 PM
mehdi_amini added a comment to D31990: limit to 2 parallel links when using thinlto.

Sure, still LGTM!

Thu, Apr 20, 11:46 AM

Tue, Apr 18

mehdi_amini added inline comments to D32061: [wip] Bitcode: Write the irsymtab to disk..
Tue, Apr 18, 6:35 PM
mehdi_amini added inline comments to D32061: [wip] Bitcode: Write the irsymtab to disk..
Tue, Apr 18, 4:59 PM
mehdi_amini added inline comments to D32061: [wip] Bitcode: Write the irsymtab to disk..
Tue, Apr 18, 4:32 PM
mehdi_amini added a comment to D21723: [RFC] Enhance synchscope representation.
  • Emit target specific tokens instead of integers in textual representation of llvm ir (similar to calling conventions)
  • Add bitcode test

    Mehdi, did you have something like this in mind?
Tue, Apr 18, 4:28 PM

Sun, Apr 16

mehdi_amini added a comment to D31739: Add markup for libc++ dylib availability.

Ping?

Sun, Apr 16, 12:08 AM

Sat, Apr 15

mehdi_amini accepted D30879: Distinguish between code pointer size and DataLayout::getPointerSize() in DWARF info generation .

LGTM

Sat, Apr 15, 11:59 PM

Thu, Apr 13

mehdi_amini added inline comments to D30879: Distinguish between code pointer size and DataLayout::getPointerSize() in DWARF info generation .
Thu, Apr 13, 12:52 AM
mehdi_amini added a comment to D31167: Use FPContractModeKind universally.

I believe considering the goal of moving to using per-instruction FMF and kills the global backend option, this leads to a bitcode upgrade issue: OpenCL (or other) bitcode that were generated bitcode don't have the right FMF and will be upgraded conservatively.
Performance regression when upgrading bitcode are to be expected in general, so it is not a bug.
To recover, an option for an OpenCL backend would be to add a pass that set the expected FMF everywhere after bitcode upgrade.

Thu, Apr 13, 12:41 AM
mehdi_amini added a comment to D31990: limit to 2 parallel links when using thinlto.

LGTM if you can avoid the warning when using something else than Ninja.

Thu, Apr 13, 12:11 AM

Mon, Apr 10

mehdi_amini added inline comments to D31898: Introduce libLTO C APIs to target the "resolution-based" new LTO API.
Mon, Apr 10, 3:51 PM
mehdi_amini added a comment to D31898: Introduce libLTO C APIs to target the "resolution-based" new LTO API.

Thanks, I'll address all these.

Mon, Apr 10, 12:17 PM
mehdi_amini created D31898: Introduce libLTO C APIs to target the "resolution-based" new LTO API.
Mon, Apr 10, 10:42 AM

Sun, Apr 9

mehdi_amini requested changes to D31866: Keep NDEBUG out of header.
Sun, Apr 9, 2:24 PM

Sat, Apr 8

mehdi_amini committed rL299814: Reorganize libLTO C API header lto.h (NFC).
Reorganize libLTO C API header lto.h (NFC)
Sat, Apr 8, 12:33 PM

Thu, Apr 6

mehdi_amini reopened D31070: Turn some C-style vararg into variadic templates.

reverted in r299702: the examples aren't updated: http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast/builds/9023/steps/build/logs/stdio

Thu, Apr 6, 1:37 PM
mehdi_amini committed rL299702: Revert "Turn some C-style vararg into variadic templates".
Revert "Turn some C-style vararg into variadic templates"
Thu, Apr 6, 1:36 PM
mehdi_amini committed rL299699: Turn some C-style vararg into variadic templates.
Turn some C-style vararg into variadic templates
Thu, Apr 6, 1:22 PM
mehdi_amini closed D31070: Turn some C-style vararg into variadic templates by committing rL299699: Turn some C-style vararg into variadic templates.
Thu, Apr 6, 1:22 PM
mehdi_amini added a comment to D31070: Turn some C-style vararg into variadic templates.

clang-formatted and committed as r299699

Thu, Apr 6, 1:22 PM
mehdi_amini added a comment to D31070: Turn some C-style vararg into variadic templates.

Can you rebase? I promise I'll apply it quickly after :)

Thu, Apr 6, 9:13 AM
mehdi_amini committed rL299656: Revert "Restore Missing awk regex tests. Thanks to dexonsmith for noticing, and….
Revert "Restore Missing awk regex tests. Thanks to dexonsmith for noticing, and…
Thu, Apr 6, 9:09 AM
mehdi_amini added a comment to D16541: [libc++] Renable test/std/re/re.alg/re.alg.match/awk.pass.cpp.

This bot is broken: http://green.lab.llvm.org/green/job/libcxx_master_cmake_32/61/

Thu, Apr 6, 8:33 AM

Wed, Apr 5

mehdi_amini created D31739: Add markup for libc++ dylib availability.
Wed, Apr 5, 8:04 PM
mehdi_amini committed rL299607: Fix remote test execution in lit.
Fix remote test execution in lit
Wed, Apr 5, 6:27 PM
mehdi_amini committed rL299606: Use alternate string layout for ARMv7k.
Use alternate string layout for ARMv7k
Wed, Apr 5, 6:23 PM
mehdi_amini added a comment to D31735: ThinLTOBitcodeWriter: delete comdats if their keys are renamed.

COFF requires that every comdat contain a symbol with the same name as the comdat.

Wed, Apr 5, 6:00 PM
mehdi_amini added inline comments to D31733: [IR] Put the Use list waymarking bits in the bit positions documentation says they are using.
Wed, Apr 5, 4:56 PM
mehdi_amini accepted D31727: [Bugpoint] Use `unique_ptr` correctly..

LGTM with a const ref
(and please don't use the full log as a commit message, keep it simple and descriptive).

Wed, Apr 5, 3:12 PM

Tue, Apr 4

mehdi_amini accepted D31681: [ExecutionDepsFix] Don't recurse over the CFG.
Tue, Apr 4, 3:26 PM

Mon, Apr 3

mehdi_amini committed rL299414: Uses quote to include cxxabi.h to make sure the local one is included.
Uses quote to include cxxabi.h to make sure the local one is included
Mon, Apr 3, 10:51 PM
mehdi_amini added a comment to D31632: ThinLTOBitcodeWriter: handle aliases first in filterModule.

I see the clang test. We try to keep our testing at the IR level though. Is there anything specific that prevents it in this case?

Mon, Apr 3, 5:18 PM
mehdi_amini added a comment to D31632: ThinLTOBitcodeWriter: handle aliases first in filterModule.

Do you have a test case?

Mon, Apr 3, 5:15 PM

Fri, Mar 31

mehdi_amini accepted D31563: Bitcode: Remove reader support for MODULE_CODE_PURGEVALS..

I trust you on checking the branching point for 3.0 ;)

Fri, Mar 31, 8:37 PM

Thu, Mar 30

mehdi_amini accepted D31508: [ThinLTO] Set up lto::Config properly for codegen in ThinLTO backends.

LGTM

Thu, Mar 30, 4:47 PM
mehdi_amini added a comment to D31364: LTO: Reduce memory consumption by creating an in-memory symbol table for InputFiles. NFCI..

I'm fine with the approach. I didn't review in great details but I can trust @rafael.

Thu, Mar 30, 11:59 AM

Wed, Mar 29

mehdi_amini committed rL299057: libc++ testing: fix invalid python syntax.
libc++ testing: fix invalid python syntax
Wed, Mar 29, 10:34 PM
mehdi_amini committed rL299056: libc++ testing: fix assertion around `use_system_cxx_lib`.
libc++ testing: fix assertion around `use_system_cxx_lib`
Wed, Mar 29, 10:19 PM
mehdi_amini committed rL299055: libc++ config testing: `use_system_cxx_lib` can be a bool.
libc++ config testing: `use_system_cxx_lib` can be a bool
Wed, Mar 29, 10:03 PM
mehdi_amini closed D17469: [libcxx] Add deployment knobs to tests (for Apple platforms).

Was committed a while back in r297798

Wed, Mar 29, 10:01 PM
mehdi_amini committed rL299054: Reexport operator new / delete from libc++abi.
Reexport operator new / delete from libc++abi
Wed, Mar 29, 9:59 PM
mehdi_amini closed D30765: Reexport operator new / delete from libc++abi by committing rL299054: Reexport operator new / delete from libc++abi.
Wed, Mar 29, 9:59 PM
mehdi_amini closed D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

r299052 ; let me know if you want to improve the comment in any way.

Wed, Mar 29, 9:58 PM
mehdi_amini committed rL299053: libc++ testing: allow to provide a path for `use_system_cxx_lib`.
libc++ testing: allow to provide a path for `use_system_cxx_lib`
Wed, Mar 29, 9:58 PM
mehdi_amini closed D31486: libc++ testing: allow to provide a path for `use_system_cxx_lib` by committing rL299053: libc++ testing: allow to provide a path for `use_system_cxx_lib`.
Wed, Mar 29, 9:57 PM
mehdi_amini committed rL299052: Do not pass an explicit reexported symbol list when building libc++ dylib if….
Do not pass an explicit reexported symbol list when building libc++ dylib if…
Wed, Mar 29, 9:53 PM
mehdi_amini added inline comments to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.
Wed, Mar 29, 9:52 PM
mehdi_amini added inline comments to D29866: [PDSE] Add PDSE..
Wed, Mar 29, 9:38 PM
mehdi_amini created D31486: libc++ testing: allow to provide a path for `use_system_cxx_lib`.
Wed, Mar 29, 6:07 PM
mehdi_amini added a comment to D31444: LTO: call getRealLinkageName on IRNames before feeding to getGUID.

This matches also what I had in mind on a high level (didn't look into the details).

Wed, Mar 29, 3:18 PM
mehdi_amini added a comment to D31444: LTO: call getRealLinkageName on IRNames before feeding to getGUID.
In D31444#713402, @rnk wrote:
In D31444#712724, @pcc wrote:

So maybe we should have just one static function:

static GUID getGUID(StringRef Name, GlobalValue::LinkageTypes Linkage, StringRef FileName);

That should hopefully make the API harder to misuse.

Wed, Mar 29, 11:54 AM

Tue, Mar 28

mehdi_amini added inline comments to D31022: Implement P0298R3: `std::byte`.
Tue, Mar 28, 5:27 PM
mehdi_amini added a comment to D31444: LTO: call getRealLinkageName on IRNames before feeding to getGUID.

@mehdi_amini, we have other places where we call GlobalValue::getGUID with a name that is not an IR name, e.g. in BitcodeReader.cpp. I wouldn't be opposed to moving to a design where it's harder to pass the wrong kind of name, or even a design where the IR name and the RealLinkageName and the GlobalIdentifier aren't all different things, but that is going to be a larger change. Can we get this fix in in the meantime?

Tue, Mar 28, 4:41 PM
mehdi_amini added a comment to D31444: LTO: call getRealLinkageName on IRNames before feeding to getGUID.

Can we get consistently GlobalValue::getGUID taking an IRName and taking care of calling getRealLinkageName? (assuming it is what's expected)

Tue, Mar 28, 4:26 PM
mehdi_amini added a comment to D31443: [LTO] Do not reorder global variables unnecessarily during merging.

But please wait for the other to chime in with their opinion on the topic :)

Tue, Mar 28, 3:22 PM
mehdi_amini accepted D31443: [LTO] Do not reorder global variables unnecessarily during merging.

But keep in mind that we don't want anyone relying on this ordering.

Tue, Mar 28, 3:19 PM
mehdi_amini added a comment to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

OK, I figured, it is because I have this revision locally on top of this one: https://reviews.llvm.org/D30765 ; and I can't submit the latter without the change here.

Tue, Mar 28, 12:44 PM
mehdi_amini added a dependency for D30765: Reexport operator new / delete from libc++abi: D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.
Tue, Mar 28, 12:43 PM
mehdi_amini added a dependent revision for D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete: D30765: Reexport operator new / delete from libc++abi.
Tue, Mar 28, 12:43 PM
mehdi_amini added a comment to D30791: Add support for -fno-builtin to LTO and ThinLTO on Darwin.
In D30791#712296, @pcc wrote:

You may want to include the freestanding flag in the code generation options hash.

Tue, Mar 28, 12:11 PM
mehdi_amini committed rL298936: Add support for -fno-builtin to LTO and ThinLTO to libLTO.
Add support for -fno-builtin to LTO and ThinLTO to libLTO
Tue, Mar 28, 12:08 PM
mehdi_amini closed D30791: Add support for -fno-builtin to LTO and ThinLTO on Darwin by committing rL298936: Add support for -fno-builtin to LTO and ThinLTO to libLTO.
Tue, Mar 28, 12:08 PM
mehdi_amini updated the diff for D30791: Add support for -fno-builtin to LTO and ThinLTO on Darwin.

clang-format

Tue, Mar 28, 10:06 AM
mehdi_amini updated the diff for D30791: Add support for -fno-builtin to LTO and ThinLTO on Darwin.

Address comments:

Tue, Mar 28, 10:02 AM

Mon, Mar 27

mehdi_amini added a comment to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

Strange. So installing the command line tools is not enough. It has to be that CMAKE_OSX_SYSROOT is only defined on Apple internal install maybe?

Are you sure you're starting with a clean CMake build directory?

Mon, Mar 27, 10:49 PM
mehdi_amini added a comment to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

Strange. So installing the command line tools is not enough. It has to be that CMAKE_OSX_SYSROOT is only defined on Apple internal install maybe?

Mon, Mar 27, 10:11 PM
mehdi_amini abandoned D30307: Fix insertion of `sanitizer_cov_trace_pc_guard` insertion in optimized code with debug info.
Mon, Mar 27, 9:56 PM
mehdi_amini added a comment to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

Not that I'm claiming to understand why we're changing strategy when we have the command line tools installed or not in this case ;)

Mon, Mar 27, 9:33 PM
mehdi_amini updated subscribers of D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.
Mon, Mar 27, 9:32 PM
mehdi_amini added a comment to D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.

I'm a bit confused by the description of this change. Libc++ has been enabling the new/delete definitions in its dylib since forever and I've never experienced a link error. Did you mean to say the link error occurs only when libc++abi doesn't define them?

Mon, Mar 27, 9:32 PM
mehdi_amini added a comment to D31402: COFF: include archive name in LTO object name.

In ELF I believe the offset to the member name is also added. Because an archive can contain two member with the same name.

Mon, Mar 27, 10:44 AM
mehdi_amini added a comment to D20116: Add speculatable function attribute.

Then we have an orthogonal concern which is what's the precondition that is sufficient to justify an optimization. For example, whether a function call can be executed speculatively is one of such preconditions. It can be derived by looking at the function attributes. For example, for speculative execution we probably need to know that the function doesn't write to memory and that it terminates.

It is not enough (for example division by zero).

Sure; I didn't mean to have enumerated a complete list.

Mon, Mar 27, 8:22 AM

Sun, Mar 26

mehdi_amini added a comment to D20116: Add speculatable function attribute.

Then we have an orthogonal concern which is what's the precondition that is sufficient to justify an optimization. For example, whether a function call can be executed speculatively is one of such preconditions. It can be derived by looking at the function attributes. For example, for speculative execution we probably need to know that the function doesn't write to memory and that it terminates.

Sun, Mar 26, 2:19 PM

Mar 24 2017

mehdi_amini added a comment to D31364: LTO: Reduce memory consumption by creating an in-memory symbol table for InputFiles. NFCI..

With this change I measured a peak memory consumption decrease from 5.4GB to 2.8GB in a no-op incremental ThinLTO link of Chromium on Linux, and total time elapsed decreases from ~61s to ~48s.

Mar 24 2017, 11:16 PM
mehdi_amini updated subscribers of D30920: Do not pass -Os and -Oz to the Gold plugin.

Yes, we should do this. I don't understand why this is tricky. Actually, I think having these kinds of decisions explicit in the code of the transformations would be a positive development.

Mar 24 2017, 2:18 PM

Mar 23 2017

mehdi_amini added a comment to D26959: llvm-strings - dumping strings from LLVM bitcode.

As previously mentioned, if this absolutely requires that the file not be treated opaquely, then we should be putting this functionality into another tool. Perhaps llvm-bc would be a good home for this. I'd really rather LLVM-strings be kept simple and treat all input as opaque.

Mar 23 2017, 2:26 PM

Mar 22 2017

mehdi_amini created D31272: Do not pass an explicit reexported symbol list when building libc++ dylib if also defining new/delete.
Mar 22 2017, 5:21 PM
mehdi_amini added a comment to D20116: Add speculatable function attribute.

That troubles (and worries) me as well.

Why?

Mar 22 2017, 4:08 PM
mehdi_amini added a comment to D20116: Add speculatable function attribute.

If we go with (2), then we've admitted that "dead code" (that is, code that is not run) can influence program behavior, which I find troubling.

Mar 22 2017, 2:56 PM

Mar 21 2017

mehdi_amini added a comment to D31232: [IR] Use a binary search in DataLayout::getAlignmentInfo.

It is not clear to me why an associative container instead of a vector wouldn't be even easier to use?

Mar 21 2017, 8:46 PM
mehdi_amini accepted D31230: IPO: Const correctness for summaries passed into passes..

LGTM

Mar 21 2017, 8:06 PM
mehdi_amini accepted D31226: IR: Fix a race condition in type id clients of ModuleSummaryIndex..

LGTM.

Mar 21 2017, 7:59 PM
mehdi_amini added inline comments to D31226: IR: Fix a race condition in type id clients of ModuleSummaryIndex..
Mar 21 2017, 5:43 PM
mehdi_amini added a comment to D20116: Add speculatable function attribute.

readnone etc. are different from speculatable, in that once you mark a call site as speculatable you've the said call site as speculatable throughout the lifetime of the program (since, by definition, it can be arbitrarily speculated). readnone, readonly etc. do not have that property.

Mar 21 2017, 4:38 PM
mehdi_amini added inline comments to D30468: Simplify the CFG after loop pass cleanup..
Mar 21 2017, 3:27 PM
mehdi_amini added inline comments to D31217: Disable loop unrolling and icp in SamplePGO ThinLTO compile phase.
Mar 21 2017, 3:20 PM
mehdi_amini added inline comments to D31217: Disable loop unrolling and icp in SamplePGO ThinLTO compile phase.
Mar 21 2017, 3:01 PM

Mar 20 2017

mehdi_amini added inline comments to D31164: [IR] Add AllowContract to FastMathFlags.
Mar 20 2017, 9:10 PM