<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/lld/Common/Filesystem.cpp, branch main</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[LLD][COFF] Add support for `--time-trace` (#68236)</title>
<updated>2023-10-06T02:33:58+00:00</updated>
<author>
<name>Alexandre Ganea</name>
<email>37383324+aganea@users.noreply.github.com</email>
</author>
<published>2023-10-06T02:33:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=356139bd027d65b6843cbd4eda642104cfe6cf8f'/>
<id>356139bd027d65b6843cbd4eda642104cfe6cf8f</id>
<content type='text'>
This adds support for generating Chrome-tracing .json profile traces in
the LLD COFF driver.

Also add the necessary time scopes, so that the profile trace shows in
great detail which tasks are executed.

As an example, this is what we see when linking a Unreal Engine
executable:

![image](https://github.com/llvm/llvm-project/assets/37383324/b2e26eb4-9d37-4cf9-b002-48b604e7dcb7)</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This adds support for generating Chrome-tracing .json profile traces in
the LLD COFF driver.

Also add the necessary time scopes, so that the profile trace shows in
great detail which tasks are executed.

As an example, this is what we see when linking a Unreal Engine
executable:

![image](https://github.com/llvm/llvm-project/assets/37383324/b2e26eb4-9d37-4cf9-b002-48b604e7dcb7)</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC][LLD] Refactor some copy-paste into the Common library (#67598)</title>
<updated>2023-09-27T22:06:48+00:00</updated>
<author>
<name>Matheus Izvekov</name>
<email>mizvekov@gmail.com</email>
</author>
<published>2023-09-27T22:06:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=8ff77a8f04e5a385115c1790a5f03ec263a00faf'/>
<id>8ff77a8f04e5a385115c1790a5f03ec263a00faf</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[NFC] clang-format lld/COFF/Driver.cpp and lld/Common/Filesystem.cpp</title>
<updated>2023-09-21T11:19:04+00:00</updated>
<author>
<name>Matheus Izvekov</name>
<email>mizvekov@gmail.com</email>
</author>
<published>2023-09-21T11:16:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=a5e280bc6bda10607e0e7c864e4d23fac02d00aa'/>
<id>a5e280bc6bda10607e0e7c864e4d23fac02d00aa</id>
<content type='text'>
In order to reduce noise for a MR.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In order to reduce noise for a MR.
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLD][ELF][Windows] small improvement to D82567</title>
<updated>2020-07-13T11:02:20+00:00</updated>
<author>
<name>Ben Dunbobbin</name>
<email>Ben.Dunbobbin@sony.com</email>
</author>
<published>2020-07-13T10:58:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6bda276f93023ae91937cb8a1f45bf27e5a3ced7'/>
<id>6bda276f93023ae91937cb8a1f45bf27e5a3ced7</id>
<content type='text'>
Bail early if there is no existing output file to be overwritten.

Differential Revision: https://reviews.llvm.org/D83272
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Bail early if there is no existing output file to be overwritten.

Differential Revision: https://reviews.llvm.org/D83272
</pre>
</div>
</content>
</entry>
<entry>
<title>[LLD][ELF][Windows] Allow LLD to overwrite existing output files that are in use</title>
<updated>2020-07-03T12:08:56+00:00</updated>
<author>
<name>Ben Dunbobbin</name>
<email>Ben.Dunbobbin@sony.com</email>
</author>
<published>2020-07-03T11:54:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=f42f599d3724cd4a2f470a53551604f722965de6'/>
<id>f42f599d3724cd4a2f470a53551604f722965de6</id>
<content type='text'>
On Windows co-operative programs can be expected to open LLD's
output in FILE_SHARE_DELETE mode. This allows us to delete the
file (by moving it to a temporary filename and then deleting
it) so that we can link another output file that overwrites
the existing file, even if the current file is in use.

A similar strategy is documented here:
https://boostgsoc13.github.io/boost.afio/doc/html/afio/FAQ/deleting_open_files.html

Differential Revision: https://reviews.llvm.org/D82567
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
On Windows co-operative programs can be expected to open LLD's
output in FILE_SHARE_DELETE mode. This allows us to delete the
file (by moving it to a temporary filename and then deleting
it) so that we can link another output file that overwrites
the existing file, even if the current file is in use.

A similar strategy is documented here:
https://boostgsoc13.github.io/boost.afio/doc/html/afio/FAQ/deleting_open_files.html

Differential Revision: https://reviews.llvm.org/D82567
</pre>
</div>
</content>
</entry>
<entry>
<title>[Support] Move LLD's parallel algorithm wrappers to support</title>
<updated>2020-05-05T22:21:05+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2020-05-05T03:03:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=932f0276ea29fd58e1a07947e302f3ca9b54e61a'/>
<id>932f0276ea29fd58e1a07947e302f3ca9b54e61a</id>
<content type='text'>
Essentially takes the lld/Common/Threads.h wrappers and moves them to
the llvm/Support/Paralle.h algorithm header.

The changes are:
- Remove policy parameter, since all clients use `par`.
- Rename the methods to `parallelSort` etc to match LLVM style, since
  they are no longer C++17 pstl compatible.
- Move algorithms from llvm::parallel:: to llvm::, since they have
  "parallel" in the name and are no longer overloads of the regular
  algorithms.
- Add range overloads
- Use the sequential algorithm directly when 1 thread is requested
  (skips task grouping)
- Fix the index type of parallelForEachN to size_t. Nobody in LLVM was
  using any other parameter, and it made overload resolution hard for
  for_each_n(par, 0, foo.size(), ...) because 0 is int, not size_t.

Remove Threads.h and update LLD for that.

This is a prerequisite for parallel public symbol processing in the PDB
library, which is in LLVM.

Reviewed By: MaskRay, aganea

Differential Revision: https://reviews.llvm.org/D79390
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Essentially takes the lld/Common/Threads.h wrappers and moves them to
the llvm/Support/Paralle.h algorithm header.

The changes are:
- Remove policy parameter, since all clients use `par`.
- Rename the methods to `parallelSort` etc to match LLVM style, since
  they are no longer C++17 pstl compatible.
- Move algorithms from llvm::parallel:: to llvm::, since they have
  "parallel" in the name and are no longer overloads of the regular
  algorithms.
- Add range overloads
- Use the sequential algorithm directly when 1 thread is requested
  (skips task grouping)
- Fix the index type of parallelForEachN to size_t. Nobody in LLVM was
  using any other parameter, and it made overload resolution hard for
  for_each_n(par, 0, foo.size(), ...) because 0 is int, not size_t.

Remove Threads.h and update LLD for that.

This is a prerequisite for parallel public symbol processing in the PDB
library, which is in LLVM.

Reviewed By: MaskRay, aganea

Differential Revision: https://reviews.llvm.org/D79390
</pre>
</div>
</content>
</entry>
<entry>
<title>[lld][COFF][ELF][WebAssembly] Replace --[no-]threads /threads[:no] with --threads={1,2,...} /threads:{1,2,...}</title>
<updated>2020-03-31T15:46:12+00:00</updated>
<author>
<name>Fangrui Song</name>
<email>maskray@google.com</email>
</author>
<published>2020-03-17T19:40:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=eb4663d8c6add351d758748383f1a9fc231e5e64'/>
<id>eb4663d8c6add351d758748383f1a9fc231e5e64</id>
<content type='text'>
--no-threads is a name copied from gold.
gold has --no-thread, --thread-count and several other --thread-count-*.

There are needs to customize the number of threads (running several lld
processes concurrently or customizing the number of LTO threads).
Having a single --threads=N is a straightforward replacement of gold's
--no-threads + --thread-count.

--no-threads is used rarely. So just delete --no-threads instead of
keeping it for compatibility for a while.

If --threads= is specified (ELF,wasm; COFF /threads: is similar),
--thinlto-jobs= defaults to --threads=,
otherwise all available hardware threads are used.

There is currently no way to override a --threads={1,2,...}. It is still
a debate whether we should use --threads=all.

Reviewed By: rnk, aganea

Differential Revision: https://reviews.llvm.org/D76885
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
--no-threads is a name copied from gold.
gold has --no-thread, --thread-count and several other --thread-count-*.

There are needs to customize the number of threads (running several lld
processes concurrently or customizing the number of LTO threads).
Having a single --threads=N is a straightforward replacement of gold's
--no-threads + --thread-count.

--no-threads is used rarely. So just delete --no-threads instead of
keeping it for compatibility for a while.

If --threads= is specified (ELF,wasm; COFF /threads: is similar),
--thinlto-jobs= defaults to --threads=,
otherwise all available hardware threads are used.

There is currently no way to override a --threads={1,2,...}. It is still
a debate whether we should use --threads=all.

Reviewed By: rnk, aganea

Differential Revision: https://reviews.llvm.org/D76885
</pre>
</div>
</content>
</entry>
<entry>
<title>[lld] Fix trivial typos in comments</title>
<updated>2020-01-06T18:25:48+00:00</updated>
<author>
<name>Kazuaki Ishizaki</name>
<email>ishizaki@jp.ibm.com</email>
</author>
<published>2020-01-06T18:21:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=7ae3d335467a24faa80ebd9b31446c649570ca0c'/>
<id>7ae3d335467a24faa80ebd9b31446c649570ca0c</id>
<content type='text'>
Reviewed By: ruiu, MaskRay

Differential Revision: https://reviews.llvm.org/D72196
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Reviewed By: ruiu, MaskRay

Differential Revision: https://reviews.llvm.org/D72196
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix build breakage on Win32.</title>
<updated>2019-07-11T06:00:40+00:00</updated>
<author>
<name>Rui Ueyama</name>
<email>ruiu@google.com</email>
</author>
<published>2019-07-11T06:00:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=76c3f6cdff9f31c79e90c73c2341ac5910be29ca'/>
<id>76c3f6cdff9f31c79e90c73c2341ac5910be29ca</id>
<content type='text'>
llvm-svn: 365732
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
llvm-svn: 365732
</pre>
</div>
</content>
</entry>
<entry>
<title>[Coding style change][lld] Rename variables for non-ELF ports</title>
<updated>2019-07-11T05:40:30+00:00</updated>
<author>
<name>Rui Ueyama</name>
<email>ruiu@google.com</email>
</author>
<published>2019-07-11T05:40:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=136d27ab4de0c1d5dedfecc32a9857be78fa0648'/>
<id>136d27ab4de0c1d5dedfecc32a9857be78fa0648</id>
<content type='text'>
This patch does the same thing as r365595 to other subdirectories,
which completes the naming style change for the entire lld directory.

With this, the naming style conversion is complete for lld.

Differential Revision: https://reviews.llvm.org/D64473

llvm-svn: 365730
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This patch does the same thing as r365595 to other subdirectories,
which completes the naming style change for the entire lld directory.

With this, the naming style conversion is complete for lld.

Differential Revision: https://reviews.llvm.org/D64473

llvm-svn: 365730
</pre>
</div>
</content>
</entry>
</feed>
