grimar (George Rimar)
User

Projects

User does not belong to any projects.

User Details

User Since
Sep 21 2015, 12:36 AM (100 w, 1 d)

Recent Activity

Today

grimar added inline comments to D35945: [ELF] - Linkerscript: better diagnostic for INPUT/GROUP commands..
Tue, Aug 22, 11:35 AM
grimar updated the diff for D37009: [ELF] - Fix for "Bug 34238 - LTO is optimizing away symbols referenced from linker scripts".
  • Restored original comment.
Tue, Aug 22, 10:17 AM
grimar added inline comments to D37009: [ELF] - Fix for "Bug 34238 - LTO is optimizing away symbols referenced from linker scripts".
Tue, Aug 22, 10:17 AM
grimar created D37015: [ELF] - Do not report multiple errors for single one in ScriptLexer::setError..
Tue, Aug 22, 10:09 AM
grimar abandoned 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:32 AM
grimar updated the diff for D37013: [ELF] - Add additional information about location when emiting linkerscript's parsing errors..
  • Renamed new methods/field, changed error text to suggested.
Tue, Aug 22, 9:06 AM
grimar updated the summary of D37013: [ELF] - Add additional information about location when emiting linkerscript's parsing errors..
Tue, Aug 22, 8:18 AM
grimar added inline comments to D37013: [ELF] - Add additional information about location when emiting linkerscript's parsing errors..
Tue, Aug 22, 8:07 AM
grimar created D37013: [ELF] - Add additional information about location when emiting linkerscript's parsing errors..
Tue, Aug 22, 7:23 AM
grimar updated the summary of D37009: [ELF] - Fix for "Bug 34238 - LTO is optimizing away symbols referenced from linker scripts".
Tue, Aug 22, 5:56 AM
grimar created D37009: [ELF] - Fix for "Bug 34238 - LTO is optimizing away symbols referenced from linker scripts".
Tue, Aug 22, 5:53 AM
grimar updated the summary of D37008: [ELF] - Do not allow --dynamic-list and --version-script together..
Tue, Aug 22, 5:06 AM
grimar created D37008: [ELF] - Do not allow --dynamic-list and --version-script together..
Tue, Aug 22, 5:04 AM
grimar committed rL311449: [ELF] - Remove outdated comment. NFC..
[ELF] - Remove outdated comment. NFC.
Tue, Aug 22, 4:12 AM
grimar committed rL311432: [lib/Analysis] - Mark personality functions as live..
[lib/Analysis] - Mark personality functions as live.
Tue, Aug 22, 1:54 AM
grimar closed D36834: [lib/Analysis] - Mark personality functions as live. by committing rL311432: [lib/Analysis] - Mark personality functions as live..
Tue, Aug 22, 1:54 AM
grimar committed rL311431: [ELF] - Make IR symbols be visible when doing relocatable link..
[ELF] - Make IR symbols be visible when doing relocatable link.
Tue, Aug 22, 1:38 AM
grimar closed D36957: [ELF] - Make IR symbols be visible when doing relocatable link. by committing rL311431: [ELF] - Make IR symbols be visible when doing relocatable link..
Tue, Aug 22, 1:38 AM

Yesterday

grimar added inline comments to D36834: [lib/Analysis] - Mark personality functions as live..
Mon, Aug 21, 9:35 AM
grimar added inline comments to D36834: [lib/Analysis] - Mark personality functions as live..
Mon, Aug 21, 9:05 AM
grimar created D36966: [ELF] - Repair dynsym-pie.s testcase..
Mon, Aug 21, 8:27 AM
grimar added inline comments to D36959: Alternative fix for PR33097.
Mon, Aug 21, 7:48 AM
grimar accepted D36958: [ELF] Remove dependency on hexdump from lit tests.

LGTM, thanks !

Mon, Aug 21, 7:02 AM
grimar created D36957: [ELF] - Make IR symbols be visible when doing relocatable link..
Mon, Aug 21, 6:48 AM
grimar updated the diff for D36834: [lib/Analysis] - Mark personality functions as live..
  • Added comment and testcase.
Mon, Aug 21, 5:06 AM
grimar added inline comments to D36834: [lib/Analysis] - Mark personality functions as live..
Mon, Aug 21, 4:55 AM
grimar committed rL311315: [ELF] - Recommit "[ELF] - Do not forget to fill last bytes of PT_LOADs with….
[ELF] - Recommit "[ELF] - Do not forget to fill last bytes of PT_LOADs with…
Mon, Aug 21, 1:32 AM
grimar committed rL311314: [ELF] - Revert r311310 "[ELF] - Do not forget to fill last bytes of PT_LOADs….
[ELF] - Revert r311310 "[ELF] - Do not forget to fill last bytes of PT_LOADs…
Mon, Aug 21, 1:16 AM
grimar committed rL311313: [ELF] - Enable threading in many-sections.s testcase. NFC..
[ELF] - Enable threading in many-sections.s testcase. NFC.
Mon, Aug 21, 1:11 AM
grimar committed rL311312: [Support/Parallel] - Do not use a task group for a very small task..
[Support/Parallel] - Do not use a task group for a very small task.
Mon, Aug 21, 1:02 AM
grimar closed D36607: [Support/Parallel] - Do not use a task group for a very small task. by committing rL311312: [Support/Parallel] - Do not use a task group for a very small task..
Mon, Aug 21, 1:02 AM
grimar committed rL311311: [ELF] - Do not segfault when doing logical and/or operations on symbols that….
[ELF] - Do not segfault when doing logical and/or operations on symbols that…
Mon, Aug 21, 12:58 AM
grimar closed D36145: [ELF] - Do not segfault when doing logical and/or operations on symbols that have no output sections. by committing rL311311: [ELF] - Do not segfault when doing logical and/or operations on symbols that….
Mon, Aug 21, 12:58 AM
grimar committed rL311310: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..
[ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions.
Mon, Aug 21, 12:52 AM
grimar closed D36262: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions. by committing rL311310: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..
Mon, Aug 21, 12:52 AM
grimar added inline comments to D36874: [ELF] - Mention "-z notext" and -fPIC in some error messages.
Mon, Aug 21, 12:07 AM

Fri, Aug 18

grimar added inline comments to D36834: [lib/Analysis] - Mark personality functions as live..
Fri, Aug 18, 11:42 AM
grimar created D36874: [ELF] - Mention "-z notext" and -fPIC in some error messages.
Fri, Aug 18, 6:56 AM
grimar retitled D36834: [lib/Analysis] - Mark personality functions as live. from [lib/LTO] - Mark personality functions as live when them are live. to [lib/Analysis] - Mark personality functions as live..
Fri, Aug 18, 5:44 AM
grimar updated the diff for D36834: [lib/Analysis] - Mark personality functions as live..
  • Addressed review comment.
Fri, Aug 18, 5:41 AM
grimar updated the diff for D36607: [Support/Parallel] - Do not use a task group for a very small task..
  • Addressed review comment.
Fri, Aug 18, 2:21 AM
grimar added a comment to D34689: [LLD][ELF] Pre-create ThunkSections at Target specific intervals.

Just a minor nit I noticed.

Fri, Aug 18, 1:47 AM
grimar updated the diff for D36145: [ELF] - Do not segfault when doing logical and/or operations on symbols that have no output sections..
  • Addressed review comment.
Fri, Aug 18, 1:32 AM
grimar added inline comments to D36256: [ELF] Don't output headers into a segment if there's no space for them.
Fri, Aug 18, 1:21 AM · lld
grimar updated the diff for D36262: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..
  • Addressed review comment.
Fri, Aug 18, 1:00 AM

Thu, Aug 17

grimar created D36834: [lib/Analysis] - Mark personality functions as live..
Thu, Aug 17, 8:13 AM
grimar added a comment to D28611: [ELF][MIPS] - Explicitly list supported relocations for MIPS target..

Looks it was forgotten and not committed.

Thu, Aug 17, 2:36 AM
grimar closed D29330: Replace MergeOutputSection with synthetic input section MergeSection..

r294005

Thu, Aug 17, 2:34 AM
grimar closed D29607: Handle symbol assignments before the first section switch.

r294252

Thu, Aug 17, 2:34 AM
grimar closed D29947: Represent all addends with int64_t.

r295263

Thu, Aug 17, 2:28 AM
grimar closed D30048: Don't print DISCARD sections as gced.

r295467

Thu, Aug 17, 2:27 AM
grimar closed D32758: Remove isTlsLocalDynamicRel and isTlsInitialExecRel.

r302279

Thu, Aug 17, 2:25 AM
grimar closed D36198: Use more consistent names.

Was committed in r309840

Thu, Aug 17, 2:23 AM
grimar added inline comments to D36262: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..
Thu, Aug 17, 2:13 AM
grimar updated the diff for D36262: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..
  • Addressed review comment.
Thu, Aug 17, 2:13 AM
grimar committed rL311073: [ELF] - Don't segfault when accessing location counter inside MEMORY command..
[ELF] - Don't segfault when accessing location counter inside MEMORY command.
Thu, Aug 17, 1:48 AM
grimar closed D36138: [ELF] - Don't segfault when accessing location counter inside MEMORY command. by committing rL311073: [ELF] - Don't segfault when accessing location counter inside MEMORY command..
Thu, Aug 17, 1:48 AM
grimar added inline comments to D36138: [ELF] - Don't segfault when accessing location counter inside MEMORY command..
Thu, Aug 17, 1:01 AM
grimar retitled D36607: [Support/Parallel] - Do not use a task group for a very small task. from [Support/Parallel] - Do not spawn thread for single/last task. to [Support/Parallel] - Do not use a task group for a very small task..
Thu, Aug 17, 12:51 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#843789, @ruiu wrote:

George,

First of all, busy-waiting is a no-no, so we can't eliminate the condition variable from the thread pool. When a thread has to wait for some event to happen, it has to use a condition variable to put itself into the "blocked" state instead of busy-looping until the condition is met. That is in general true even if using busy loops makes your program faster, as your OS supports multiple processes and you don't want one process eat up all CPU resources.

Thu, Aug 17, 12:50 AM
grimar added inline comments to D36138: [ELF] - Don't segfault when accessing location counter inside MEMORY command..
Thu, Aug 17, 12:41 AM
grimar added inline comments to D36145: [ELF] - Do not segfault when doing logical and/or operations on symbols that have no output sections..
Thu, Aug 17, 12:29 AM

Wed, Aug 16

grimar added inline comments to D36573: [ELF] - Treat .gnu.linkonce sections as COMDAT.
Wed, Aug 16, 11:42 PM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..

Adaptive mutexes (e.g. for pthread_*) work using this principle. The kernel maintains a shared page and threads contending on the lock spin until the lock owner isn't descheduled.
This works because in general the cost of a context switch overcomes that of wasting few cycles spinning (under the assumption the CS is small).
An approximation of this scheme would be that of spinning for a certain number of cycles decreasing a variable each time (and going to sleep when the variable reaches zero).
This is, FWIW, what FreeBSD pthread mutexes do.
A different (and possibly more effective) proposal for Parallel would be that of exploring work-stealing algorithms for queueing.

Interesting.
And what this patch do is orthogonal thing, since helps to avoid all threading/syncing overhead at all for free in some cases.

This is not true in general. Imagine that the Fn(J) callback takes a considerable amount of time, much larger than the synchronization overhead, then your sequential version will take much more time than the parallel version (unless I'm missing some detail).

Wed, Aug 16, 5:57 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..

Adaptive mutexes (e.g. for pthread_*) work using this principle. The kernel maintains a shared page and threads contending on the lock spin until the lock owner isn't descheduled.
This works because in general the cost of a context switch overcomes that of wasting few cycles spinning (under the assumption the CS is small).
An approximation of this scheme would be that of spinning for a certain number of cycles decreasing a variable each time (and going to sleep when the variable reaches zero).
This is, FWIW, what FreeBSD pthread mutexes do.
A different (and possibly more effective) proposal for Parallel would be that of exploring work-stealing algorithms for queueing.

Wed, Aug 16, 5:14 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#840916, @ruiu wrote:

I still wonder if a communication between threads can make something that slow. Where is the exact location where you observe the slowdown? Until we understand the exact reason, we cannot exclude the possibility that this change is hiding a real issue.

Wed, Aug 16, 4:06 AM
grimar committed rL310995: [ELF] - Ignore -plugin-opt=-function-sections/-plugin-opt=-data-sections. NFC..
[ELF] - Ignore -plugin-opt=-function-sections/-plugin-opt=-data-sections. NFC.
Wed, Aug 16, 12:26 AM
grimar abandoned D36573: [ELF] - Treat .gnu.linkonce sections as COMDAT.

Ok.

Wed, Aug 16, 12:09 AM

Tue, Aug 15

grimar added a comment to D35945: [ELF] - Linkerscript: better diagnostic for INPUT/GROUP commands..

ping

Tue, Aug 15, 9:49 AM
grimar added a comment to D36138: [ELF] - Don't segfault when accessing location counter inside MEMORY command..

ping

Tue, Aug 15, 9:48 AM
grimar added a comment to D36145: [ELF] - Do not segfault when doing logical and/or operations on symbols that have no output sections..

ping

Tue, Aug 15, 9:48 AM
grimar added a comment to D36262: [ELF] - Do not forget to fill last bytes of PT_LOADs with trap instructions..

ping

Tue, Aug 15, 9:48 AM
grimar committed rL310928: [llvm-dwarfdump] - Attemp to fix BB after r310915..
[llvm-dwarfdump] - Attemp to fix BB after r310915.
Tue, Aug 15, 9:45 AM
grimar committed rL310923: [llvm-dwarfdump] - Refactor section name/uniqueness gathering..
[llvm-dwarfdump] - Refactor section name/uniqueness gathering.
Tue, Aug 15, 8:55 AM
grimar closed D36740: [llvm-dwarfdump] - Refactor section name/uniqueness gathering. by committing rL310923: [llvm-dwarfdump] - Refactor section name/uniqueness gathering..
Tue, Aug 15, 8:55 AM
grimar added inline comments to D36740: [llvm-dwarfdump] - Refactor section name/uniqueness gathering..
Tue, Aug 15, 8:41 AM
grimar updated the diff for D36740: [llvm-dwarfdump] - Refactor section name/uniqueness gathering..
  • All comments addressed.
Tue, Aug 15, 8:40 AM
grimar created D36740: [llvm-dwarfdump] - Refactor section name/uniqueness gathering..
Tue, Aug 15, 7:58 AM
grimar committed rL310918: [DebugInfo] - Attemp to fix BB after r310915..
[DebugInfo] - Attemp to fix BB after r310915.
Tue, Aug 15, 6:27 AM
grimar committed rL310915: [llvm-dwarfdump] - Print section name and index when dumping .debug_info ranges.
[llvm-dwarfdump] - Print section name and index when dumping .debug_info ranges
Tue, Aug 15, 5:34 AM
grimar closed D36313: [llvm-dwarfdump] - Print section name and index when dumping .debug_info ranges by committing rL310915: [llvm-dwarfdump] - Print section name and index when dumping .debug_info ranges.
Tue, Aug 15, 5:34 AM
grimar added a comment to D36313: [llvm-dwarfdump] - Print section name and index when dumping .debug_info ranges.

Looks OK to me - though please refactor the section name/uniqueness gathering so it's done once (probably lazily) rather than every time a range is dumped.

Tue, Aug 15, 5:32 AM

Mon, Aug 14

grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..

After looking into ThreadPoolExecutor I think its implementation is fine.
It creates std::thread::hardware_concurrency() - 1 threads and reuses them correctly.

Mon, Aug 14, 7:12 AM
grimar reclaimed D36607: [Support/Parallel] - Do not use a task group for a very small task..
Mon, Aug 14, 7:06 AM
grimar updated the summary of D36607: [Support/Parallel] - Do not use a task group for a very small task..
Mon, Aug 14, 7:06 AM
grimar abandoned D36607: [Support/Parallel] - Do not use a task group for a very small task..

I was mistaken. Did not notice that TaskGroup::spawn() has different implementation for windows/non-windows case.
Linux implementation actually based on a ThreadPoolExecutor which implemented via thread pool,
so l was mistaken when said that it creates 65k threads, issue happens because of something else.

Mon, Aug 14, 5:56 AM
grimar committed rL310835: [ELF] - Ignore --plugin-opt=mcpu= and --plugin-opt=thinlto. .
[ELF] - Ignore --plugin-opt=mcpu= and --plugin-opt=thinlto.
Mon, Aug 14, 5:37 AM
grimar committed rL310826: [ELF] - LTO: Try to be option compatible with the gold plugin..
[ELF] - LTO: Try to be option compatible with the gold plugin.
Mon, Aug 14, 3:19 AM
grimar closed D36227: [ELF] - LTO: Try to be option compatible with the gold plugin. by committing rL310826: [ELF] - LTO: Try to be option compatible with the gold plugin..
Mon, Aug 14, 3:18 AM

Sat, Aug 12

grimar updated the diff for D36227: [ELF] - LTO: Try to be option compatible with the gold plugin..
  • Used substr() instead of drop_front().
Sat, Aug 12, 7:58 AM

Fri, Aug 11

grimar added inline comments to D36227: [ELF] - LTO: Try to be option compatible with the gold plugin..
Fri, Aug 11, 8:54 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#839160, @ruiu wrote:

It is broken. The taskgroup should not spawn more threads than the number of physical cores however it is used. It is intended to be a thread-pool, and spawning threads per task is nonsense.

Fri, Aug 11, 8:20 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..

It should never create 65k+ threads. If it does, something's broken.

Fri, Aug 11, 8:10 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#839139, @ruiu wrote:

Then why does it take so much time in some test cases if both are the same in the big-O? It should never create 65k+ threads. If it does, something's broken. This patch seems to be trying to fix at a wrong place.

Fri, Aug 11, 8:03 AM
grimar added inline comments to D36227: [ELF] - LTO: Try to be option compatible with the gold plugin..
Fri, Aug 11, 8:00 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#839086, @ruiu wrote:

Because the last one is not parallelized by the taskgroup, no?

Fri, Aug 11, 7:54 AM
grimar added a comment to D36607: [Support/Parallel] - Do not use a task group for a very small task..
In D36607#839043, @ruiu wrote:

This doesn't seem correct. Imagine that you have infinite number of cores. Then, the new code would take 2x time than the old code. I guess you are "fixing" the problem at a wrong place.

Fri, Aug 11, 7:11 AM
grimar added a comment to D36579: [ELF] - Do not fail when set versions for linkerscript's symbol aliases.
In D36579#838308, @ruiu wrote:

It doesn't seem correct. Essentially, the fundamental issue is that we add versions to symbols too early, so moving it upwards in the driver doesn't feel right.

Fri, Aug 11, 5:29 AM
grimar committed rL310705: [ELF] - Fixing buildbot..
[ELF] - Fixing buildbot.
Fri, Aug 11, 4:49 AM
grimar committed rL310703: [ELF] - Do not omit common symbols when -Map is given..
[ELF] - Do not omit common symbols when -Map is given.
Fri, Aug 11, 4:35 AM