Displaying 20 results from an estimated 46 matches for "irlinker".
2016 Dec 23
0
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com> wrote:
> Hey,
>
> As I’m playing with Metadata lazy-loading, I added a verifier right before
> running the IRLinker in FunctionImport.cpp, and it does not pass (on
> current trunk) in a few cases. One that I looked at ended up with aliases
> pointing to available_externally functions for instance.
>
How do these look after IRLinking (in the dest module)? I looked at the
logic in renameModuleForThinLTO...
2016 Dec 23
6
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
...nson <tejohnson at google.com> wrote:
>
>
>
> On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> wrote:
> Hey,
>
> As I’m playing with Metadata lazy-loading, I added a verifier right before running the IRLinker in FunctionImport.cpp, and it does not pass (on current trunk) in a few cases. One that I looked at ended up with aliases pointing to available_externally functions for instance.
>
> How do these look after IRLinking (in the dest module)? I looked at the logic in renameModuleForThinLTO and a...
2016 Jul 28
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...eSummaryIndex::getOriginalNameBeforePromote attempts to get the original name by stripping .llvm.{HASH}, but what I observe is that ".1" is still appended to the expected original name.
Then where this extra ".1" comes from? It is appended when the global value is materialized. IRLinker::materialize function calls IRLinker::linkGlobalValueProto function, and inside that function if DGV is nullptr or ShouldLink is true then IRLinker::copyGlobalValueProto function is called to create a global variable in the destination module that corresponds to SGV. I found that newly created glob...
2016 Dec 23
2
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
Hey,
As I’m playing with Metadata lazy-loading, I added a verifier right before running the IRLinker in FunctionImport.cpp, and it does not pass (on current trunk) in a few cases. One that I looked at ended up with aliases pointing to available_externally functions for instance.
I’m hesitant about breaking the IR verifier like that before calling the IRLinker. The alternative I can see now would...
2016 Jul 29
3
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...ummaryIndex::getOriginalNameBeforePromote attempts to get the original name by stripping .llvm.{HASH}, but what I observe is that ".1" is still appended to the expected original name.
Then where this extra ".1" comes from? It is appended when the global value is materialized. IRLinker::materialize function calls IRLinker::linkGlobalValueProto function, and inside that function if DGV is nullptr or ShouldLink is true then IRLinker::copyGlobalValueProto function is called to create a global variable in the destination module that corresponds to SGV. I found that newly created glob...
2016 Jul 29
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...; Materializable
; Function Attrs: nounwind uwtable
define weak_odr void @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2 personality i32 (...)* @__gxx_personality_v0 {}
is materialized to
; Function Attrs: nounwind uwtable
declare void @foo(%"type1"*) unnamed_addr #2 align 2
Inside IRLinker::linkGlobalValueProto, the materialized value is returned from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is true and ShouldLink is false, DGV becomes nullptr later, and NewGV is created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore, returned value from linkGlobal...
2016 Jul 29
0
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...rePromote attempts to get the
> original name by stripping .llvm.{HASH}, but what I observe is that ".1" is
> still appended to the expected original name.
>
>
>
> Then where this extra ".1" comes from? It is appended when the global
> value is materialized. IRLinker::materialize function calls
> IRLinker::linkGlobalValueProto function, and inside that function if DGV is
> nullptr or ShouldLink is true then IRLinker::copyGlobalValueProto function
> is called to create a global variable in the destination module that
> corresponds to SGV. I found tha...
2016 Jul 29
0
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...rePromote attempts to get the
> original name by stripping .llvm.{HASH}, but what I observe is that ".1" is
> still appended to the expected original name.
>
>
>
> Then where this extra ".1" comes from? It is appended when the global
> value is materialized. IRLinker::materialize function calls
> IRLinker::linkGlobalValueProto function, and inside that function if DGV is
> nullptr or ShouldLink is true then IRLinker::copyGlobalValueProto function
> is called to create a global variable in the destination module that
> corresponds to SGV. I found tha...
2016 Jul 29
0
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...d @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2
> personality i32 (...)* @__gxx_personality_v0 {}
>
>
>
> is materialized to
>
>
>
> ; Function Attrs: nounwind uwtable
>
> declare void @foo(%"type1"*) unnamed_addr #2 align 2
>
>
>
> Inside IRLinker::linkGlobalValueProto, the materialized value is returned
> from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is
> true and ShouldLink is false, DGV becomes nullptr later, and NewGV is
> created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore,
> returned v...
2016 Dec 23
2
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
...on <tejohnson at google.com<mailto:tejohnson at google.com>> wrote:
On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com<mailto:mehdi.amini at apple.com>> wrote:
Hey,
As I’m playing with Metadata lazy-loading, I added a verifier right before running the IRLinker in FunctionImport.cpp, and it does not pass (on current trunk) in a few cases. One that I looked at ended up with aliases pointing to available_externally functions for instance.
How do these look after IRLinking (in the dest module)? I looked at the logic in renameModuleForThinLTO and all the con...
2016 Jul 29
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...alizable
; Function Attrs: nounwind uwtable
define weak_odr void @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2 personality i32 (...)* @__gxx_personality_v0 {}
is materialized to
; Function Attrs: nounwind uwtable
declare void @foo(%"type1"*) unnamed_addr #2 align 2
Inside IRLinker::linkGlobalValueProto, the materialized value is returned from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is true and ShouldLink is false, DGV becomes nullptr later, and NewGV is created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore, returned value from linkGlobal...
2016 Dec 27
0
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
...M, Teresa Johnson <tejohnson at google.com> wrote:
>
>
>
> On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com>
> wrote:
>
>> Hey,
>>
>> As I’m playing with Metadata lazy-loading, I added a verifier right
>> before running the IRLinker in FunctionImport.cpp, and it does not pass (on
>> current trunk) in a few cases. One that I looked at ended up with aliases
>> pointing to available_externally functions for instance.
>>
>
> How do these look after IRLinking (in the dest module)? I looked at the
> logic...
2016 Jul 29
0
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...d @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2
> personality i32 (...)* @__gxx_personality_v0 {}
>
>
>
> is materialized to
>
>
>
> ; Function Attrs: nounwind uwtable
>
> declare void @foo(%"type1"*) unnamed_addr #2 align 2
>
>
>
> Inside IRLinker::linkGlobalValueProto, the materialized value is returned
> from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is
> true and ShouldLink is false, DGV becomes nullptr later, and NewGV is
> created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore,
> returned v...
2016 Jul 30
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...alizable
; Function Attrs: nounwind uwtable
define weak_odr void @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2 personality i32 (...)* @__gxx_personality_v0 {}
is materialized to
; Function Attrs: nounwind uwtable
declare void @foo(%"type1"*) unnamed_addr #2 align 2
Inside IRLinker::linkGlobalValueProto, the materialized value is returned from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is true and ShouldLink is false, DGV becomes nullptr later, and NewGV is created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore, returned value from linkGlobal...
2016 Jul 30
1
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...d @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2
> personality i32 (...)* @__gxx_personality_v0 {}
>
>
>
> is materialized to
>
>
>
> ; Function Attrs: nounwind uwtable
>
> declare void @foo(%"type1"*) unnamed_addr #2 align 2
>
>
>
> Inside IRLinker::linkGlobalValueProto, the materialized value is returned
> from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is
> true and ShouldLink is false, DGV becomes nullptr later, and NewGV is
> created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore,
> returned v...
2016 Aug 15
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...t;>
>>>
>>>
>>> is materialized to
>>>
>>>
>>>
>>> ; Function Attrs: nounwind uwtable
>>>
>>> declare void @foo(%"type1"*) unnamed_addr #2 align 2
>>>
>>>
>>>
>>> Inside IRLinker::linkGlobalValueProto, the materialized value is
>>> returned from getLinkedToGlobal(SGV) and assigned to DGV. However, as
>>> ForAlias is true and ShouldLink is false, DGV becomes nullptr later, and
>>> NewGV is created from copyGlobalValueProto(SGV, ShouldLink) call.
&g...
2016 Aug 15
2
[ThinLTO] assert(GS != DefinedGlobals.end()) failed in FunctionImport.cpp
...d @foo(%1*) unnamed_addr #7 comdat($comdat1) align 2
> personality i32 (...)* @__gxx_personality_v0 {}
>
>
>
> is materialized to
>
>
>
> ; Function Attrs: nounwind uwtable
>
> declare void @foo(%"type1"*) unnamed_addr #2 align 2
>
>
>
> Inside IRLinker::linkGlobalValueProto, the materialized value is returned
> from getLinkedToGlobal(SGV) and assigned to DGV. However, as ForAlias is
> true and ShouldLink is false, DGV becomes nullptr later, and NewGV is
> created from copyGlobalValueProto(SGV, ShouldLink) call. Therefore,
> returned v...
2016 Dec 23
1
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
...>> wrote:
>>
>>
>>
>> On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> wrote:
>> Hey,
>>
>> As I’m playing with Metadata lazy-loading, I added a verifier right before running the IRLinker in FunctionImport.cpp, and it does not pass (on current trunk) in a few cases. One that I looked at ended up with aliases pointing to available_externally functions for instance.
>>
>> How do these look after IRLinking (in the dest module)? I looked at the logic in renameModuleForThinL...
2016 Dec 23
0
ThinLTO promotion is ending up with "invalid" IR before IR-Linking
...>>>
>>>> On Thu, Dec 22, 2016 at 8:55 PM, Mehdi Amini <mehdi.amini at apple.com <mailto:mehdi.amini at apple.com>> wrote:
>>>> Hey,
>>>>
>>>> As I’m playing with Metadata lazy-loading, I added a verifier right before running the IRLinker in FunctionImport.cpp, and it does not pass (on current trunk) in a few cases. One that I looked at ended up with aliases pointing to available_externally functions for instance.
>>>>
>>>> How do these look after IRLinking (in the dest module)? I looked at the logic in rena...
2016 Dec 07
4
[ThinLTO] Reducing imported debug metadata
...ns. This one
David thought would need to be under an option because of lldb's assumption
that the DWARF match the Clang AST (I think I am stating that right,
correct me if not!).
Implementation:
a)-d) (enums/macros/global variables/imported entities):
For a-d I have a simple solution in the IRLinker. At the very start of
IRLinking in a module, if it is being linked in for function importing, I
invoke a function that does the handling (i.e. from the IRLinker
constructor).
This routine handles a-c by pre-populating the ValueMap's MDMap entry for
those Metadata* (e.g. the RawEnumTypes Metada...