Displaying 20 results from an estimated 10000 matches similar to: "what is official way to determine if we are running lto 2nd stage?"
2016 Sep 12
2
what is official way to determine if we are running lto 2nd stage?
Hi,
In LTO we have AsmParser that process inline assembler instructions to
MCInst and I want to fix some inline assembler in order to conform its
rules (do not start with non-identifier and so on) because asm syntax
of our backend allows some incompatible patterns. In order to do this
I am adding IR-level target-specific pass. But those fixes shall not
be applied when there is no AsmParser later
2016 Sep 12
3
what is official way to determine if we are running lto 2nd stage?
Hi,
This is really basic block level pass. It is no difference what is
level, problem is the same.
After fixing for asm parser, assembler syntax is no more valid for
backend, without processing with asm parser.
May be it will be solution to process inline asm on insn printer level
to remove syntax fixes. But just switch it off without lto will make
compiler do less job
P.S. sorry for dup,
2016 Sep 13
2
what is official way to determine if we are running lto 2nd stage?
Hi,
Imagine that your backend has valid asm instruction written like this:
"%x mnem %y, %z"
And user puts it as inline assembler:
__asm__ ("%x mnem %y, %z");
It can not be parsed with current llvm asm parser, because it starts
with % (moreover it has mnemonic in second place)
Say you written pass, that makes it "mnem %x, %y, %z".
Now this guy can be parsed, but
2016 May 10
3
[llvm dev] do we have allocator hook to use maximum different registers?
Hi,
Default register allocator tries to reuse the same registers over and
over again even if register file have a plenty of registers to use.
This creates parasite false dependencies and makes scheduling less
effective.
How to instruct allocator (may be override some virtual function in
mine backend?) that it is profitable to use maximum number of
available registers with minimal dependencies?
2016 Sep 16
2
RFC: module flag for hosted mode
+Eric and Akira (for thoughts on module flags)
> On 2016-Sep-16, at 12:47, Mehdi Amini <mehdi.amini at apple.com> wrote:
>
>> On Sep 16, 2016, at 12:30 PM, Peter Collingbourne <peter at pcc.me.uk> wrote:
>>
>> In PR30403 we've been discussing how to encode -ffreestanding when using LTO. This bit is currently dropped during LTO because its only
2016 Feb 16
2
Intrinsic opt failure
Hi,
Working on private backend, based on llvm-3.7
Inside lib/Transforms/InstCombine/InstCombineCompares.cpp there is
attempt to optimize fabs:
if (F->getIntrinsicID() == Intrinsic::fabs ||
...
switch (I.getPredicate()) {
...
case FCmpInst::FCMP_OGT:
return new FCmpInst(FCmpInst::FCMP_ONE, CI->getArgOperand(0), RHSC);
But
CI->getArgOperand(0)
2016 Sep 21
2
RFC: module flag for hosted mode
(summarising IRC)
Rethinking a little, I would be inclined to agree that combined hosted and
freestanding modules should not be compiled in hosted mode. Here's one
scenario where we may break: suppose I LTO-link an implementation of memset
compiled with -ffreestanding with a program compiled with -fhosted. With
the proposed rule, the loop idiom recognizer may transform the body of the
memset
2016 Dec 22
1
Spill hoisting on RAL: looking for some debugging ideas
Hi,
I am debugging private backend and faced interesting problem:
sometimes spill hoisting creates double stores.
(some output from -debug-only=regalloc).
First hoisting:
Checking redundant spills for 0 at 16r in %vreg19
[16r,144B:0)[144B,240B:1)[240B,280r:2)[296r,416B:3)[416B,456r:4)[472r,592B:5)
0 at 16r 1 at 144B-phi 2 at 240B-phi
3 at 296r 4 at 416B-phi 5 at 472r
Merged to stack int: SS#0
2012 Mar 15
3
[LLVMdev] How to set constant pool section?
Hi,
Thanks for pointing direction. As far, as I understand by reversing,
logic, that I want to overwrite is digged into:
lib/MC/MCSectionELF.cpp
MCSectionELF::PrintSwitchToSection
if (ShouldOmitSectionDirective(SectionName, MAI)) {
OS << '\t' << getSectionName() << '\n';
return;
}
// otherwise print ".section" directive and then section
2016 Sep 16
2
RFC: module flag for hosted mode
In PR30403 we've been discussing how to encode -ffreestanding when using
LTO. This bit is currently dropped during LTO because its only
representation is in the TargetLibraryInfo created by clang (
http://llvm-cs.pcc.me.uk/tools/clang/lib/CodeGen/BackendUtil.cpp#258).
The proposal is to introduce a module flag that we set in any translation
unit compiled in hosted (i.e. -fno-freestanding)
2012 Mar 02
3
[LLVMdev] how to annotate assembler
Hi,
In GCC there is one useful option -dp (or -dP for more verbose output)
to annotate assembler with instruction patterns, that was used when
assembler was generated. For example:
double
test(long long s)
{
return s;
}
gcc -S -dp -O0 test.c
test:
.LFB0:
.cfi_startproc
pushq %rbp # 18 *pushdi2_rex64/1 [length = 1]
.cfi_def_cfa_offset 16
movq %rsp, %rbp # 19 *movdi_1_rex64/2
2012 Mar 15
0
[LLVMdev] How to set constant pool section?
On Thu, Mar 15, 2012 at 11:00:54AM +0400, Konstantin Vladimirov wrote:
> Hi,
>
> Thanks for pointing direction. As far, as I understand by reversing,
> logic, that I want to overwrite is digged into:
>
> lib/MC/MCSectionELF.cpp
>
> MCSectionELF::PrintSwitchToSection
>
> if (ShouldOmitSectionDirective(SectionName, MAI)) {
> OS << '\t'
2016 Feb 16
0
Intrinsic opt failure
On 2/16/2016 8:44 AM, Konstantin Vladimirov via llvm-dev wrote:
>
> CI->getArgOperand(0) returns operand with type (double*) rather then
> double, because in our ABI doubles are passed via memory.
The LLVM intrinsics in the LLVM IR must conform to whatever the IR's
requirements are. That means that even in the case of your backend, the
arguments to the intrinsic must be doubles,
2012 Mar 02
0
[LLVMdev] how to annotate assembler
On 02.03.2012, at 09:20, Konstantin Vladimirov wrote:
> Hi,
>
> In GCC there is one useful option -dp (or -dP for more verbose output)
> to annotate assembler with instruction patterns, that was used when
> assembler was generated. For example:
The internal "-mllvm -show-mc-inst" option is probably as close as you can get.
$ clang -S -O0 test.c -mllvm -show-mc-inst -o
2020 Oct 28
2
Targeting old glibc
On Wed, Oct 28, 2020 at 6:07 PM Fangrui Song <maskray at google.com> wrote:
>
> On 2020-10-28, Alexandre Bique via llvm-dev wrote:
> >Hi,
> >
> >I wonder what is the right way to target an old glibc?
> >
> >I have a machine which is up to date (glibc 2.32 and clang+lld 10.0.1).
> >
> >So far I've been able to target older glibc by having a
2013 Nov 12
3
[LLVMdev] How to reduce the footprint of MDNodes? (About the comment you made at BOF LTO)
Hi Manman (and llvmdev),
I filed these two bugs to track the ideas that I was cooking:
http://llvm.org/bugs/show_bug.cgi?id=17891
http://llvm.org/bugs/show_bug.cgi?id=17892
TL;DR: I'm saying we should go from:
!14 = metadata !{i32 786445, metadata !1, metadata !10, metadata !"y", i32 3, i64 32, i64 32, i64 32, i32 0, metadata !13}
to:
!14 = metadata
2013 Nov 13
0
[LLVMdev] How to reduce the footprint of MDNodes? (About the comment you made at BOF LTO)
On Tue, Nov 12, 2013 at 4:14 PM, Chris Lattner <clattner at apple.com> wrote:
> I'm moderately opposed to just encoding these in a string format. I think
> we can do something substantially better both for space, time, and
> readability. Fundamentally, there is no reason for the original metadata
> node you describe to not *encode* its operands into a dense bit-packed blob
2013 Nov 13
3
[LLVMdev] How to reduce the footprint of MDNodes? (About the comment you made at BOF LTO)
On Nov 12, 2013, at 1:28 PM, Chandler Carruth <chandlerc at google.com> wrote:
> On Mon, Nov 11, 2013 at 11:29 PM, Chris Lattner <clattner at apple.com> wrote:
> Hi Manman (and llvmdev),
>
> I filed these two bugs to track the ideas that I was cooking:
>
> http://llvm.org/bugs/show_bug.cgi?id=17891
> http://llvm.org/bugs/show_bug.cgi?id=17892
>
> TL;DR:
2013 Nov 12
0
[LLVMdev] How to reduce the footprint of MDNodes? (About the comment you made at BOF LTO)
On Mon, Nov 11, 2013 at 11:29 PM, Chris Lattner <clattner at apple.com> wrote:
> Hi Manman (and llvmdev),
>
> I filed these two bugs to track the ideas that I was cooking:
>
> http://llvm.org/bugs/show_bug.cgi?id=17891
> http://llvm.org/bugs/show_bug.cgi?id=17892
>
> TL;DR: I'm saying we should go from:
>
> !14 = metadata !{i32 786445, metadata !1,
2015 Nov 05
4
[PATCH] D14227: Add a new attribute: norecurse
[Adding llvm-dev and re-stating the situation for llvm-dev's benefit]
*RFC: A new attribute, "norecurse".*
In some cases, it is possible to demote global variables to local
variables. This is possible when the global is only used in one function,
and that function is known not to recurse (because if the function
recurses, a local variable cannot be equivalent to a global as the