Displaying 20 results from an estimated 10000 matches similar to: "With -flto, is manual inline unnecessary?"
2017 Oct 03
2
New Pass Manager with flto[=thin] not enabled (??)
On Tue, Oct 3, 2017 at 12:08 PM, Davide Italiano <davide at freebsd.org> wrote:
> On Tue, Oct 3, 2017 at 11:57 AM, Graham Yiu via llvm-dev
> <llvm-dev at lists.llvm.org> wrote:
>> Hello,
>>
>> I recently noticed that the new pass manager was not enabled at regular/thin
>> LTO link step even if '-fexperimental-new-pass-manager' was specified in the
2018 May 09
2
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
LLD revision is r331862. To add, I had initially tried it on r328903,
which also reproduced the issue.
On Wed, May 9, 2018 at 9:26 AM Pirama Arumuga Nainar <pirama at google.com>
wrote:
> Hi Teresa,
>
> Thanks for looking into this. I hadn't initially tried ToT, but it
> reproduces in ToT as well when I tried.
>
> $ ./clang --version
>
> clang version 7.0.0
2018 May 09
2
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
On Wed, May 9, 2018 at 6:43 AM Teresa Johnson <tejohnson at google.com> wrote:
> Hi Pirama,
>
> I can't reproduce with either lld or gold, using a compiler built from
> head. What version is your clang?
>
(and your lld)
>
> Thanks,
> Teresa
>
> On Tue, May 8, 2018 at 7:50 PM Pirama Arumuga Nainar via llvm-dev <
> llvm-dev at lists.llvm.org>
2018 May 09
2
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
Adding Peter to comment on the linker resolution issue.
>From adding save-temps, it looks like lld and gold are giving different
resolutions to the symbols, which is presumably creating this issue:
(first file is with lld and second is with gold)
$ diff a.out.resolution.txt gold/
4c4
< -r=a.o,__llvm_profile_raw_version,plx
---
> -r=a.o,__llvm_profile_raw_version,l
8,9c8,9
<
2018 May 09
0
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
Sorry, operator error. I can reproduce now. Interestingly, this does not
reproduce using gold, and they utilize the same underlying LTO API. Let me
dig a little using save-temps and see where they diverge.
Teresa
On Wed, May 9, 2018 at 9:28 AM Pirama Arumuga Nainar <pirama at google.com>
wrote:
> LLD revision is r331862. To add, I had initially tried it on r328903,
> which also
2015 Jun 08
2
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
Talked to Eric Fri and he suggested that this might be the first of
several places where we want behavior of LTO compiles to diverge from
normal -O2 compiles. So for now I have implemented this such that we
pass down -flto to the -cc1 job, and that gets propagated as a code
gen option and into the PassManagerBuilder. I have left the current
logic translating -flto to the -emit-llvm-bc option,
2018 May 09
2
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
The duplicate symbol errors are for __llvm_profile_filename and
__llvm_profile_raw_version.
IIUC, these are supposed to be weak symbols but Thin LTO seems to break
this in some way. This does't happen with gold or no LTO or full LTO.
$ cat > a.c
extern int foo();
int main() {
return foo();
}
$ cat > b.c
int foo() {
return 0;
}
$ clang a.c -fprofile-generate -flto=thin -c
$ clang
2018 May 11
1
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
Thanks Peter, your patch does fix the reproducer. I filed
https://bugs.llvm.org/show_bug.cgi?id=37422 to track this bug. I have no
clue on how to resolve the tests - whether further cleanup is required in
the code or in the tests. But if Teresa or you cannot get to it, I can,
with some help, take a crack at fixing the tests.
On Wed, May 9, 2018 at 11:26 AM Peter Collingbourne <peter at
2020 Jul 12
2
Emit LLVM bitcode after ThinLTO
Hi,
I wanted to get the linked result in LLVM bitcode format.
With LTO, this can be done by -flto -Wl,-plugin-opt,emit-llvm. Instead of
generating native executables, it outputs a file with bitcode format.
Does this still work with -flto=thin? -flto=thin -Wl,-plugin-opt,emit-llvm
outputs a bitcode file, but its file size is too small, and does not
contain all contents.
What is the correct way
2018 May 09
0
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
The problem is that ThinLTO is not dropping the non-prevailing definitions,
and they end up being emitted into the object file for b.o.
$ ../ra/bin/llvm-dis -o - b.o0.0.preopt.bc | grep __llvm_prof
$__llvm_profile_raw_version = comdat any
$__llvm_profile_filename = comdat any
@__llvm_profile_raw_version = constant i64 72057594037927940, comdat
@__llvm_profile_filename = constant [19 x i8]
2018 May 09
0
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
Hi Teresa,
Thanks for looking into this. I hadn't initially tried ToT, but it
reproduces in ToT as well when I tried.
$ ./clang --version
clang version 7.0.0 (trunk 331879) (llvm/trunk 331888)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /ssd2/pirama/llvm-upstream/llvm-release/bin/.
$ ./ld.lld --version
LLD 7.0.0 (https://git.llvm.org/git/lld.git
2019 Jan 18
2
Is it possible to generate the IR representation with the original macro information?
Hi,
I use the following commands to compile the IR. But I don't see the
macro information in the .ll file. Is there a way to preserve the
macro information (print() in this case) for debugging purposes?
$ clang -std=gnu99 -g3 -flto -Wall -pedantic -c -o main.o main.c
$ clang main.o -flto -fuse-ld=gold '-Wl,-plugin-opt=save-temps' -o main.exe
$ llvm-dis main.exe.0.0.preopt.bc
/* vim:
2017 Oct 18
2
How to emit opt report when using LTO
Hi,
I'm using clang frontend.
I'm interested in some particular hot loop in my code and I emit a
report from vectorizer optimizations passes.
I receive nice output if passing -Rpass* flags as long as I'm building
without LTO?
But with -flto it just prints nothing.
Is there a way to emit opt reports when using LTO?
For now I can only approximate about whether my the loop will be
2015 Jun 05
2
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Thu, Jun 4, 2015 at 5:33 PM, Reid Kleckner <rnk at google.com> wrote:
> On Thu, Jun 4, 2015 at 5:17 PM, Teresa Johnson <tejohnson at google.com> wrote:
>>
>> Agreed. Although I assume you mean invoke the new pass under a
>> ThinLTO-only option so that avail extern are not dropped in the
>> compile pass before the LTO link?
>
>
> No, this pass
2015 Aug 16
2
[LLVMdev] Updated RFC: ThinLTO Implementation Plan
Hi Mehdi,
Saw David's response but wanted to add a bit more below.
On Fri, Aug 14, 2015 at 11:14 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
> On Aug 14, 2015, at 10:41 PM, Teresa Johnson <tejohnson at google.com> wrote:
>
>
>
> On Fri, Aug 14, 2015 at 3:35 PM, Mehdi Amini <mehdi.amini at apple.com>
> wrote:
>
>> Hi Teresa,
>>
2015 Jun 08
4
[LLVMdev] Removing AvailableExternal values in GlobalDCE (was Re: RFC: ThinLTO Impementation Plan)
On Mon, Jun 8, 2015 at 11:33 AM, Reid Kleckner <rnk at google.com> wrote:
> The clang patch lgtm, and I had some comments on the LLVM patch. Duncan, do
> you want to say more there?
>
> --- include/llvm/Transforms/IPO/PassManagerBuilder.h (revision 237590)
> +++ include/llvm/Transforms/IPO/PassManagerBuilder.h (working copy)
> @@ -121,6 +121,7 @@ class PassManagerBuilder {
2018 May 09
0
lld + ThinLTO + fprofile-generate causes duplicate symbol errors
Hi Pirama,
I can't reproduce with either lld or gold, using a compiler built from
head. What version is your clang?
Thanks,
Teresa
On Tue, May 8, 2018 at 7:50 PM Pirama Arumuga Nainar via llvm-dev <
llvm-dev at lists.llvm.org> wrote:
> The duplicate symbol errors are for __llvm_profile_filename and __llvm_profile_raw_version.
> IIUC, these are supposed to be weak symbols but
2019 Nov 28
2
ThinLTO Problem
Hi Teresa,
Thanks for the detailed reply!
> How are you creating your bitcode files?
I create the bitcode with `-flto=thin -c` and sure it has a GLOBALVAL_SUMMARY_BLOCK. And there’s no RegularLTO partition only ThinLTO bicode.
> Where is it aborting in the backend?
It aborts at ` report_fatal_error("Failed to setup codegen")` in of codegen() of LTOBackend.cpp. And before that in
2015 May 14
5
[LLVMdev] RFC: ThinLTO Impementation Plan
The design objective is to make thinLTO mostly transparent to binutil tools
to enable easy integration with any build system in the wild.
'Pass-through' mode with 'ld -r' instead of the partial LTO mode is
another reason.
David
On Thu, May 14, 2015 at 7:30 AM, Teresa Johnson <tejohnson at google.com>
wrote:
> On Thu, May 14, 2015 at 7:22 AM, Eric Christopher
2016 Apr 06
2
LTO renaming of constants with inline assembly
On Wed, Apr 6, 2016 at 10:46 AM, Peter Collingbourne <peter at pcc.me.uk>
wrote:
> I suspect that the right way to do promotion/renaming of this sort is to
> rename at the MC layer just before writing the symbol table to the object
> file.
>
I think that is too late - how would the symbols be distinguished in the
LTO case below after the IR is linked but before we renamed the