smeenai (Shoaib Meenai)
User

Projects

User does not belong to any projects.

User Details

User Since
Aug 19 2016, 10:21 AM (56 w, 5 d)

Recent Activity

Today

smeenai updated the diff for D38112: [ELF] Fix edge condition in thunk offset calculation.

Fold inputs into test case

Wed, Sep 20, 6:28 PM
smeenai created D38112: [ELF] Fix edge condition in thunk offset calculation.
Wed, Sep 20, 5:16 PM

Yesterday

smeenai committed rL313703: [COFF] Adjust secrel limit check.
[COFF] Adjust secrel limit check
Tue, Sep 19, 5:23 PM
smeenai closed D38020: [COFF] Adjust secrel limit check by committing rL313703: [COFF] Adjust secrel limit check.
Tue, Sep 19, 5:23 PM
smeenai updated the diff for D38020: [COFF] Adjust secrel limit check.

Bail out of function in case of error

Tue, Sep 19, 5:16 PM
smeenai updated the diff for D38020: [COFF] Adjust secrel limit check.

Change to error

Tue, Sep 19, 5:15 PM
smeenai committed rL313699: [COFF] Check for sections larger than 4 GiB.
[COFF] Check for sections larger than 4 GiB
Tue, Sep 19, 4:59 PM
smeenai closed D38005: [COFF] Check for sections larger than 4 GiB by committing rL313699: [COFF] Check for sections larger than 4 GiB.
Tue, Sep 19, 4:59 PM
smeenai added inline comments to D38020: [COFF] Adjust secrel limit check.
Tue, Sep 19, 4:08 PM
smeenai added inline comments to D38005: [COFF] Check for sections larger than 4 GiB.
Tue, Sep 19, 4:04 PM
smeenai committed rL313648: [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list.
[cmake] Add SOURCE_DIR argument to llvm_check_source_file_list
Tue, Sep 19, 10:46 AM
smeenai closed D37859: [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list by committing rL313648: [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list.
Tue, Sep 19, 10:46 AM

Mon, Sep 18

smeenai added a comment to D38020: [COFF] Adjust secrel limit check.

Again, I'm not sure how to create a test for this one without creating gigantic (> 2 GiB) intermediate object files. The .bss trick won't work here, since we can't have relocations in a .bss section.

Mon, Sep 18, 7:48 PM
smeenai created D38020: [COFF] Adjust secrel limit check.
Mon, Sep 18, 7:48 PM
smeenai updated the diff for D38005: [COFF] Check for sections larger than 4 GiB.

Exit with correct error code.

Mon, Sep 18, 7:25 PM
smeenai updated the diff for D38005: [COFF] Check for sections larger than 4 GiB.

Change to error and add test.

Mon, Sep 18, 7:19 PM
smeenai accepted D38016: [lit] Make lit stop writing .pyc files.

This seems fine as a workaround, though I'm curious about the root cause. Shouldn't there only be conflicts during an update if the update is bringing in pyc files of its own (i.e. if pyc files got committed to svn)?

Mon, Sep 18, 6:35 PM
smeenai added a comment to D38005: [COFF] Check for sections larger than 4 GiB.
In D38005#874414, @ruiu wrote:

How about creating huge .bss sections and link them?

Mon, Sep 18, 3:47 PM
smeenai added a comment to D38005: [COFF] Check for sections larger than 4 GiB.

I'm not sure how to write a test case for this without creating an object file with a section > 4 GiB (as in that object file will take upwards of 4 GiB on disk). Any ideas?

Mon, Sep 18, 3:40 PM
smeenai created D38005: [COFF] Check for sections larger than 4 GiB.
Mon, Sep 18, 3:39 PM
smeenai added a comment to D37997: [libcxx / lit] Make libcxx work correctly with the new testing workflow.

This fixes my use case; thank you! Waiting for @mclow.lists to confirm it works for him too.

Mon, Sep 18, 2:28 PM

Fri, Sep 15

smeenai committed rL313377: [libc++] Account for Microsoft CRT const overloads.
[libc++] Account for Microsoft CRT const overloads
Fri, Sep 15, 11:51 AM

Thu, Sep 14

smeenai committed rL313345: [libc++] Remove unnecessary struct tag.
[libc++] Remove unnecessary struct tag
Thu, Sep 14, 11:21 PM
smeenai added inline comments to D28212: typeinfo: provide a partial implementation for Win32.
Thu, Sep 14, 8:33 PM
smeenai added a comment to D35388: [libc++] Give extern templates default visibility on gcc.

Filed https://bugs.llvm.org/show_bug.cgi?id=34614 about the silent attribute ignoring.

Thu, Sep 14, 4:53 PM
smeenai added a comment to D35388: [libc++] Give extern templates default visibility on gcc.

Good point. It looks like clang actually ignores the attributes in that case as well; it just doesn't warn you about it :D

Thu, Sep 14, 4:32 PM
smeenai added a comment to D28212: typeinfo: provide a partial implementation for Win32.

@compnerd, @EricWF and I discussed this a bit on IRC yesterday.

Thu, Sep 14, 1:06 PM
smeenai added a comment to D31363: [libc++] Remove cmake glob for source files.

This depends on D37859 for the SOURCE_DIR parameter to llvm_check_source_file_list.

Thu, Sep 14, 12:33 PM
smeenai created D37859: [cmake] Add SOURCE_DIR argument to llvm_check_source_file_list.
Thu, Sep 14, 12:31 PM
smeenai updated the diff for D31363: [libc++] Remove cmake glob for source files.

Address comments

Thu, Sep 14, 12:24 PM
smeenai added a comment to D36713: [libc++] Add a persistent way to disable availability.

@mclow.lists, any final verdict here? I ended up doing this differently for my internal use case, so if you think this isn't generally useful, I'm happy to abandon.

Thu, Sep 14, 11:26 AM
smeenai committed rL313284: [libc++] Prevent stale site configuration headers.
[libc++] Prevent stale site configuration headers
Thu, Sep 14, 11:25 AM
smeenai closed D36720: [libc++] Prevent stale site configuration headers by committing rL313284: [libc++] Prevent stale site configuration headers.
Thu, Sep 14, 11:25 AM
smeenai added inline comments to D36720: [libc++] Prevent stale site configuration headers.
Thu, Sep 14, 11:17 AM

Tue, Sep 12

smeenai added a comment to D28212: typeinfo: provide a partial implementation for Win32.

Rebased and tested on Windows again.

Tue, Sep 12, 8:00 PM
smeenai updated the diff for D28212: typeinfo: provide a partial implementation for Win32.

Rebase

Tue, Sep 12, 7:55 PM
smeenai commandeered D28212: typeinfo: provide a partial implementation for Win32.
Tue, Sep 12, 7:55 PM

Mon, Sep 11

smeenai added a comment to D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Using a std::vector<T> * as a key seems a bit odd to me. IIUC, this vector is a member of InputSection, so we can attach a vector of ThunkSections to InputSections, no?

I've had a think about this a bit more. I think that there is an alternative way to represent ThunkSections and NewThunkSections:

  • Store a vector of std::pair<ThunkSection*, uint32_t> where the second member of the pair is the Pass that the ThunkSection was added in.
  • When the first Thunk is added to a ThunkSection for the first time we record the Pass.
  • When merging Thunks into InputSectionDescription for Pass P we extract the Thunks with size > 0 that were created on Pass P and merge them in. This would require quite a bit of changes to the existing code, for example we'd need to iterate through InputSectionDescriptions and not std::vector<InputSection *> in both createThunks() and mergeThunks(). I'm going to have a go at implementing it but will post as a separate review.
Mon, Sep 11, 7:59 PM
smeenai added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Thanks for all the updates! I tested the updated set of patches against our internal builds, and everything is still looking good.

Mon, Sep 11, 7:49 PM
smeenai added a comment to D37718: [ELF] Handle references to garbage collected common symbols.

I'm seeing breakages caused by this as well. Thanks for the fix!

Mon, Sep 11, 7:12 PM
smeenai added a comment to D37627: [LLD][ELF] Rename variables and add comments to getISThunkSec [NFC].

Looks good to me still.

Mon, Sep 11, 12:10 PM

Fri, Sep 8

smeenai added inline comments to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.
Fri, Sep 8, 10:08 AM
smeenai accepted D37627: [LLD][ELF] Rename variables and add comments to getISThunkSec [NFC].
Fri, Sep 8, 9:48 AM

Thu, Sep 7

smeenai added a comment to D34692: [LLD][ELF] Add support for multiple passes to createThunks().

Mostly nits again. The logic looks good to me, though I'm far from being completely familiar with all parts of the existing code.

Thu, Sep 7, 11:36 PM
smeenai added inline comments to D34691: [LLD][ELF] Introduce range extension thunks for ARM.
Thu, Sep 7, 11:04 PM
smeenai added inline comments to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.
Thu, Sep 7, 10:37 PM
smeenai added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Since the branch range we're supporting in this patch is ±16 MiB, in theory the thunk sections could be spaced 32 MiB apart instead of 16, with input sections jumping either forward or backward to thunks, correct? I understand it's probably not worth the additional complexity to support that, and I'm not suggesting changing it; I just wanted to confirm my understanding :)

Thu, Sep 7, 12:18 PM

Wed, Sep 6

smeenai added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Sorry about all the nits, but I figured I'd try to get all the mechanical issues out of the way, at least :)

Wed, Sep 6, 2:44 PM

Tue, Sep 5

smeenai reopened D36499: If --dynamic-list is given, only those symbols are preemptible.

This was committed in r311468 and reverted in r311497 because it broke bots. I'm re-opening now that @rafael is back from vacation.

Tue, Sep 5, 8:33 PM

Tue, Aug 29

smeenai resigned from D37182: [libcxx] Special visibility macros for the experimental library.

It's really cool that you're getting the filesystem library to work on Windows :)

Tue, Aug 29, 3:52 AM

Thu, Aug 24

smeenai added a comment to D36713: [libc++] Add a persistent way to disable availability.

Ping.

Thu, Aug 24, 5:49 PM
smeenai added a comment to D36720: [libc++] Prevent stale site configuration headers.

Ping.

Thu, Aug 24, 5:49 PM
smeenai added a comment to D36719: [libc++] Add site config option for ABI macros.

Ping.

Thu, Aug 24, 5:49 PM

Tue, Aug 22

smeenai requested changes to D37008: [ELF] - Do not allow --dynamic-list and --version-script together..

--dynamic-list and --version-script don't make sense together when building an executable, but the combination can be useful for a shared library. See D36499 for how the two should work together for a shared library.

Tue, Aug 22, 9:12 AM

Aug 15 2017

smeenai added a comment to D36713: [libc++] Add a persistent way to disable availability.

@mclow.lists does this seem reasonable to you?

Aug 15 2017, 4:34 PM
smeenai added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.

@grimar, I believe @ruiu's point was that the real issue is that LLD versions symbols too early, so moving other things upwards in the driver (in this case, the processing of symbols defined in a linker script) to work around the versioning being too early doesn't feel right.

Aug 15 2017, 1:42 PM
smeenai added a comment to D36573: [ELF] - Treat .gnu.linkonce sections as COMDAT.

@ruiu, my understanding was that this change would make it less of a hack. It's not terribly difficult to work around as it stands though (you can define your own version of the symbol which got dropped, and in practice that symbol tends to only contain a few instructions); it would be nicer to have the linker handle it, but it's understandable if you think this isn't worthwhile. Thanks for the attempt, @grimar!

Aug 15 2017, 1:38 PM

Aug 14 2017

smeenai added a comment to D36713: [libc++] Add a persistent way to disable availability.

What's the use case here? What are you trying to accomplish?

Aug 14 2017, 4:39 PM
smeenai added a comment to D36719: [libc++] Add site config option for ABI macros.

There should probably be some documentation for this, but I couldn't think of the right place; the Using libc++ documentation only mentions the actual configuration macros, not their corresponding cmake defines. Any suggestions?

Aug 14 2017, 4:18 PM
smeenai created D36720: [libc++] Prevent stale site configuration headers.
Aug 14 2017, 4:17 PM
smeenai created D36719: [libc++] Add site config option for ABI macros.
Aug 14 2017, 4:04 PM
smeenai created D36713: [libc++] Add a persistent way to disable availability.
Aug 14 2017, 2:29 PM

Aug 10 2017

smeenai resigned from D36499: If --dynamic-list is given, only those symbols are preemptible.

This looks great. Thank you!

Aug 10 2017, 12:45 PM
smeenai closed D36497: compute isPreemtible only once.

SVN r310602.

Aug 10 2017, 12:42 PM

Aug 8 2017

smeenai added a comment to D36499: If --dynamic-list is given, only those symbols are preemptible.

Thank you!

Aug 8 2017, 10:42 PM

Aug 7 2017

smeenai committed rL310329: [libc++abi] Use proper calling convention for TLS destructor.
[libc++abi] Use proper calling convention for TLS destructor
Aug 7 2017, 5:55 PM
smeenai committed rL310290: [libc++] Don't hardcode namespace in manual mangling.
[libc++] Don't hardcode namespace in manual mangling
Aug 7 2017, 1:01 PM
smeenai added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

@peter.smith I believe you meant to link to D35413.

Aug 7 2017, 11:01 AM

Aug 4 2017

smeenai committed rL310168: [lld] Allow rel iplt symbols with dynamic symbol table.
[lld] Allow rel iplt symbols with dynamic symbol table
Aug 4 2017, 10:03 PM
smeenai closed D36350: [lld] Allow rel iplt symbols with dynamic symbol table by committing rL310168: [lld] Allow rel iplt symbols with dynamic symbol table.
Aug 4 2017, 10:03 PM
smeenai added inline comments to D34692: [LLD][ELF] Add support for multiple passes to createThunks().
Aug 4 2017, 9:54 PM
smeenai added inline comments to D36350: [lld] Allow rel iplt symbols with dynamic symbol table.
Aug 4 2017, 9:38 PM
smeenai added inline comments to D36350: [lld] Allow rel iplt symbols with dynamic symbol table.
Aug 4 2017, 9:34 PM
smeenai updated the diff for D36350: [lld] Allow rel iplt symbols with dynamic symbol table.

Address comment

Aug 4 2017, 9:34 PM
smeenai updated the diff for D36350: [lld] Allow rel iplt symbols with dynamic symbol table.

Simplify test

Aug 4 2017, 9:11 PM
smeenai added a comment to D36350: [lld] Allow rel iplt symbols with dynamic symbol table.

Instead of duplicating the test, I can either generalize the existing test to handle both the regular and --export-dynamic cases by replacing hardcoded values with regular expressions where necessary, or just add multiple check prefixes to the existing test and handle the value differences that way. Let me know what's preferable.

Aug 4 2017, 8:48 PM
smeenai created D36350: [lld] Allow rel iplt symbols with dynamic symbol table.
Aug 4 2017, 8:47 PM

Jul 30 2017

smeenai added inline comments to D18174: Fix libcxx build on musl.
Jul 30 2017, 8:42 PM
smeenai updated subscribers of D36065: [llvm-dlltool] Write correct weak externals.
Jul 30 2017, 1:41 PM

Jul 28 2017

smeenai committed rL309474: [libc++] Hoist extern template above first use.
[libc++] Hoist extern template above first use
Jul 28 2017, 7:55 PM
smeenai updated subscribers of D35919: [AArch64] Rewrite stack frame handling for win64 vararg functions.
Jul 28 2017, 2:39 PM

Jul 27 2017

smeenai added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

For whatever it's worth, I've been using these patches internally on a pretty large codebase, and they've worked really well; I haven't noticed any issues. It sounds like @ikudrin has been using them as well.

Jul 27 2017, 8:31 AM

Jul 24 2017

smeenai committed rL308899: [CodeGen] Propagate dllexport to thunks.
[CodeGen] Propagate dllexport to thunks
Jul 24 2017, 10:17 AM
smeenai closed D34972: [CodeGen] Propagate dllexport to thunks by committing rL308899: [CodeGen] Propagate dllexport to thunks.
Jul 24 2017, 10:17 AM

Jul 22 2017

smeenai added a reviewer for D35767: [COFF] Correctly set the thumb bit in DLL export addresses: compnerd.
Jul 22 2017, 2:52 PM
smeenai closed D35612: Given preference to @@ symbols.

r308492

Jul 22 2017, 12:17 PM
smeenai updated the diff for D34972: [CodeGen] Propagate dllexport to thunks.

Add comment

Jul 22 2017, 11:51 AM

Jul 21 2017

smeenai updated the summary of D34972: [CodeGen] Propagate dllexport to thunks.
Jul 21 2017, 10:13 PM
smeenai added a comment to D34972: [CodeGen] Propagate dllexport to thunks.

Ping. I updated the description based on the email discussion with @majnemer.

Jul 21 2017, 10:13 PM
smeenai added inline comments to D35757: Work around an MSVC2017 update 3 codegen bug..
Jul 21 2017, 9:18 PM

Jul 19 2017

smeenai added a comment to D35595: Bring back r307364.

Thanks for the explanations @rafael. Everything makes sense now.

Jul 19 2017, 9:14 AM

Jul 18 2017

smeenai added a comment to D35595: Bring back r307364.

(from @rafael's email) Correct, bfd complains. That is why you have to make foo weak, which is annoying.

Jul 18 2017, 10:24 PM
smeenai added a comment to D35595: Bring back r307364.

I'm probably just misunderstanding the discussion here, but bfd complains about multiple definitions if you do .symver x, x@@VER: https://ghostbin.com/paste/c9b4t. Granted, I'm on an old version of binutils, so maybe that's changed?

Jul 18 2017, 6:55 PM
smeenai committed rL308315: [COFF] Accept discarded relocations in DWARF debug sections.
[COFF] Accept discarded relocations in DWARF debug sections
Jul 18 2017, 8:11 AM
smeenai closed D35526: [COFF] Accept discarded relocations in DWARF debug sections by committing rL308315: [COFF] Accept discarded relocations in DWARF debug sections.
Jul 18 2017, 8:11 AM

Jul 17 2017

smeenai added inline comments to D35526: [COFF] Accept discarded relocations in DWARF debug sections.
Jul 17 2017, 9:14 PM
smeenai updated the diff for D35526: [COFF] Accept discarded relocations in DWARF debug sections.

arc snafu

Jul 17 2017, 9:13 PM
smeenai updated the diff for D35526: [COFF] Accept discarded relocations in DWARF debug sections.

Correct formatting

Jul 17 2017, 9:12 PM
smeenai updated the diff for D35526: [COFF] Accept discarded relocations in DWARF debug sections.

Add comment for isDWARF

Jul 17 2017, 6:42 PM
smeenai created D35526: [COFF] Accept discarded relocations in DWARF debug sections.
Jul 17 2017, 6:39 PM