Displaying 20 results from an estimated 7000 matches similar to: "[LLVMdev] [lld] alias atoms and LayoutPass"
2015 Jan 27
3
[LLVMdev] [lld] Overloaded Layout references
Hi,
I think we are overloading the Layout references for garbage collection.
If you are creating a reference (kindLayoutAfter) from A to B, that may not mean that you cannot garbage collect B for the end user.
My thought on Layout references was that it only guarantees that atoms appear in Layout reference order.
Why are we overloading this for Garbage collection (aside from saving space/code)
2015 Jan 22
5
[LLVMdev] LLD: Simplify LayoutPass
In r226336 I shove off 1.2 seconds out of 9.8 seconds for lld to link lld.
That's done by parallelizing archive member parsing. But I realized that
was not the slowest pass.
The single slowest pass in LLD is LayoutPass. Only sort() at the last of
Layoutpass::perform takes about 3 seconds (one third of total execution
time). It is because the comparison function passed to sort, compareAtoms,
2014 Mar 27
2
[LLVMdev] [lld] Subclassing LayoutPass
Hi,
I think it would be great if we could subclass the LayoutPass.
All the generic functionality could be in the parent to run the
layout-after/in-group/ and currently the layout-before passes(until it
gets removed).
Flavors can *choose to run the layout passes* that they use and
determine the way things get ordered in the layout pass.
The compare function in the LayoutPass would call
2013 Oct 07
2
[LLVMdev] [lld][failing test] the reason of ifunc.test failing
Ping ?
Do you think that we need to have an API in LinkingContext to return the
next ordinal available, so that files created by passes can be assigned
ordinals ?
Thanks
Shankar Easwaran
On 10/6/2013 11:07 PM, Shankar Easwaran wrote:
> In addition I think the LayoutPass std::stable_sort be replaced with
> std::sort as total ordering is guaranteed as each File would get an
>
2013 Oct 07
0
[LLVMdev] [lld][failing test] the reason of ifunc.test failing
In addition I think the LayoutPass std::stable_sort be replaced with
std::sort as total ordering is guaranteed as each File would get an
ordinal and each atom would get an ordinal too, after the below problem
is fixed.
Thanks
Shankar Easwaran
On 10/6/2013 10:54 PM, Shankar Easwaran wrote:
> Hi,
>
> It looks like the the ELFPassFile doesnot get an ordinal value
> assigned, as its
2014 Mar 21
2
[LLVMdev] LLD: Layout-after and layout-before
Thank you for quick responses!
As to dead stripping, if dead stripping is the only pass we need
bi-directional edges, we might want the dead stripping pass to construct
internal data structure by reversing the graph to construct layout-before
edges from layout-after edges. This should be less error prone than
maintaining two reverse-directional edges throughout all passes. Of course
it will make
2013 Oct 07
2
[LLVMdev] [lld][failing test] the reason of ifunc.test failing
Hi,
It looks like the the ELFPassFile doesnot get an ordinal value assigned,
as its added in a pass.
Is there a way to assign a file ordinal for the files added by Passes ?
Till that time, I am going to XFAIL the ifunc test.
More tests should fail, and am not sure why they are not failing.
Thanks
Shankar Easwaran
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted
2014 Mar 21
3
[LLVMdev] LLD: Layout-after and layout-before
+llvmdev
On Fri, Mar 21, 2014 at 3:43 PM, Rui Ueyama <ruiu at google.com> wrote:
> Hi all,
>
> I'm trying to debug an issue that LLD sometimes get into an infinite loop
> in setChainRoot() in LayoutPass.cpp. It looks like the cause is either
> buildPrecededByTable() handles layoutBefore edges in a wrong way or we
> construct a contradictory layout-before/layout-after
2013 Oct 07
0
[LLVMdev] [lld][failing test] the reason of ifunc.test failing
On Mon, Oct 7, 2013 at 11:51 AM, Shankar Easwaran
<shankare at codeaurora.org>wrote:
> Ping ?
>
> Do you think that we need to have an API in LinkingContext to return the
> next ordinal available, so that files created by passes can be assigned
> ordinals ?
>
That API may work, but I don't think you always want to assign the largest
file ordinal for a file created in
2013 Oct 07
1
[LLVMdev] [lld][failing test] the reason of ifunc.test failing
On 10/7/2013 3:43 PM, Rui Ueyama wrote:
> On Mon, Oct 7, 2013 at 11:51 AM, Shankar Easwaran
> <shankare at codeaurora.org>wrote:
>
>> Ping ?
>>
>> Do you think that we need to have an API in LinkingContext to return the
>> next ordinal available, so that files created by passes can be assigned
>> ordinals ?
>>
> That API may work, but I
2013 Nov 19
2
[LLVMdev] [lld] process undefined atoms from shared library only once
Hi Nick,
--start-group/--end-group functionality with the Gnu flavor currently
works only if the --start-group/--end-group contains archive files.
If they contain dynamic libraries, the undefined atoms from the dynamic
libraries are processed whenever the group is iterated again.
I am trying to find out a way to make the resolver add undefined atoms
from the shared library only *once*, when
2013 Aug 27
3
[LLVMdev] [lld] adding deadStrip() to undefined Atoms
Hi,
Can we add deadStrip() to undefinedAtoms as well ?
This will enable to choose whether we want to set the property
deadStripNormal or deadStripNever on them.
Also I think it will be cleaner for atoms to be added to deadStripRoot
set using a single API.
Thanks
Shankar Easwaran
--
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
2013 Nov 19
1
[LLVMdev] [lld] process undefined atoms from shared library only once
Hi Rui,
I thought about this, but there is a catch. The undefined symbols still
need to be resolved with exports from dynamic libraries even the second
time, or any number of times.
For example :-
ld 1.o --start-group libc.so myprintf.a --end-group
1.o has a undef for myprintf, which is in myprintf.a and myprintf.a
calls puts.
The first time when libc.so, undef atoms would be added, no
2013 Nov 19
0
[LLVMdev] [lld] process undefined atoms from shared library only once
I'd do that with the nextFile abstraction like this: On the first
iteration, a Group would return its member every time getNextFile() is
called (the same as the current behavior). On the second and further
iterations, the Group should skip all the members whose type is not
Archive. By doing this, the core linker sees dynamic libraries (or regular
object files) only once even if they are in
2015 Apr 07
3
[LLVMdev] LLD: make atoms in files non-const
Currently, member functions like File::defined() return an iterator for
const atoms. But we don't actually treat atoms as consts -- we updates
atoms in many places including the core resolver.
We have too many const_casts in our code. It just doesn't make sense.
I'm making a change to make atoms non-const. Please hit reply if you have
any concerns.
-------------- next part
2012 Nov 19
0
[LLVMdev] Chaining Atoms together
Hi Nick,
Waiting for your feedback on this.
Thanks
Shankar Easwaran
On 11/16/2012 10:03 AM, Shankar Easwaran wrote:
> Hi Nick,
>
> Thanks for your reply.
>
> The usecase here is just trying to construct a valid ELF. The lld
> linker needs to handle all sorts of code written in assembly as well
> as 'C'. The usecase is just one example of it.
>
> I have also
2012 Nov 16
3
[LLVMdev] Chaining Atoms together
Hi Nick,
Thanks for your reply.
The usecase here is just trying to construct a valid ELF. The lld linker
needs to handle all sorts of code written in assembly as well as 'C'.
The usecase is just one example of it.
I have also seen similiar code in
http://lxr.free-electrons.com/source/arch/powerpc/kernel/head_32.S?a=powerpc
which has global and local labels.
You are right, that the
2013 Aug 27
1
[LLVMdev] [lld] adding deadStrip() to undefined Atoms
Hi Nick,
On 8/27/2013 12:45 AM, Nick Kledzik wrote:
> On Aug 26, 2013, at 10:20 PM, Shankar Easwaran wrote:
>> Can we add deadStrip() to undefinedAtoms as well ?
>>
>> This will enable to choose whether we want to set the property deadStripNormal or deadStripNever on them.
>>
>> Also I think it will be cleaner for atoms to be added to deadStripRoot set using a
2014 Dec 01
2
[LLVMdev] [lld] filename in the atom model.
+ Nick
Rui,
Does PECOFF writer need the filename in the writer as well, I am not
sure if linker scripts are supported with PECOFF though.
If PECOFF also needs it, I think it makes sense to store the filename in
the Atom as the native format needs to store that information.
The only option for the ELF writer to know this information is to use
References if other flavors dont need the
2014 Nov 19
2
[LLVMdev] [lld] need a way to store the original path for atoms
Hi Nick,
I need the original path of the files, from where the atoms were parsed.
The path for the atoms are completely useless after the round trip pass.
This is needed to support linker scripts with the Gnu flavor. I think there
are more uses too like diagnostics (relocation overflows etc)
I was planning to add a patch so that the native writer, stores the
original path for atoms
Another