Displaying 18 results from an estimated 18 matches for "importfunctions".
2016 Jul 22
2
[ThinLTO] Using two different IRMovers for the same composite module? (related to PR28180)
...(or composite) module. During LTO, an IRMover is created in thinLTOBackendTask function(tools/gold/gold-plugin.cpp). linkInModule function, which is called by thinLTOBackendTask, calls the ‘move’ function of this IRMover. The other IRMover is created when “TheLinker” is created in FunctionImporter::importFunctions (lib/Transforms/IPO/FunctionImport.cpp). thinLTOBackendTask invokes FunctionImporeter::importFunctions as well, with a call chain of thinLTOBackendTask -->CodeGen::runAll (tools/gold/gold-plugin.cpp) --> CodeGen::runLTOPasses ((tools/gold/gold-plugin.cpp) --> FunctionImporter::importFuncti...
2016 Jul 22
3
[ThinLTO] Using two different IRMovers for the same composite module? (related to PR28180)
...ot empty.
—
Mehdi
During LTO, an IRMover is created in thinLTOBackendTask function(tools/gold/gold-plugin.cpp). linkInModule function, which is called by thinLTOBackendTask, calls the ‘move’ function of this IRMover. The other IRMover is created when “TheLinker” is created in FunctionImporter::importFunctions (lib/Transforms/IPO/FunctionImport.cpp). thinLTOBackendTask invokes FunctionImporeter::importFunctions as well, with a call chain of thinLTOBackendTask -->CodeGen::runAll (tools/gold/gold-plugin.cpp) --> CodeGen::runLTOPasses ((tools/gold/gold-plugin.cpp)--> FunctionImporter::importFunctio...
2018 May 01
0
ThinLTO + CFI
...wing IR for main() on entry to
> ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after
> I moved this pass down in the pipeline so it’s invoked after inlining.
> >
> > The declarations for foo() and bar() are read in at the time of module
> import, Importer.importFunctions() in lto::thinBackend(). They do not have
> type metadata attached to them.
> > In lowerTypeTestCall() we check if the pointer in the type test is of a
> known type, so we look at bitcast and then select operands. foo and bar in
> select are global objects with no type metadata, so t...
2018 Apr 30
4
ThinLTO + CFI
...se below, I get the following IR for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
>
> The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the type check cannot...
2018 Apr 27
0
ThinLTO + CFI
...e test case below, I get the following IR for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the type check cannot be g...
2018 May 14
1
ThinLTO + CFI
...e below, I get the following IR for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
>
> The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the type check cannot...
2018 May 01
2
ThinLTO + CFI
...get the following IR for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
> >
> > The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> > In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the type check c...
2018 May 01
0
ThinLTO + CFI
...wing IR for main() on entry to
> ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after
> I moved this pass down in the pipeline so it’s invoked after inlining.
> >
> > The declarations for foo() and bar() are read in at the time of module
> import, Importer.importFunctions() in lto::thinBackend(). They do not have
> type metadata attached to them.
> > In lowerTypeTestCall() we check if the pointer in the type test is of a
> known type, so we look at bitcast and then select operands. foo and bar in
> select are global objects with no type metadata, so t...
2018 Apr 27
3
ThinLTO + CFI
> We could probably tolerate a certain amount of unused jump table entries.
However, I just realized that all non-inline imported calls end up going
through a jump table entry. Is that correct?
In fact it is all calls that go through a function pointer type that is
used anywhere in the program for an indirect call, but depending on your
program that could be very close to "yes".
2018 May 01
2
ThinLTO + CFI
...ollowing IR for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
> > >
> > > The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> > > In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the type ch...
2018 May 01
0
ThinLTO + CFI
...r main() on entry to
> ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after
> I moved this pass down in the pipeline so it’s invoked after inlining.
> > >
> > > The declarations for foo() and bar() are read in at the time of module
> import, Importer.importFunctions() in lto::thinBackend(). They do not have
> type metadata attached to them.
> > > In lowerTypeTestCall() we check if the pointer in the type test is of
> a known type, so we look at bitcast and then select operands. foo and bar
> in select are global objects with no type metadata,...
2018 May 01
2
ThinLTO + CFI
...R for main() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
> > > >
> > > > The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> > > > In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so the ty...
2018 May 01
0
ThinLTO + CFI
...n entry
> to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is
> after I moved this pass down in the pipeline so it’s invoked after inlining.
> > > >
> > > > The declarations for foo() and bar() are read in at the time of
> module import, Importer.importFunctions() in lto::thinBackend(). They do
> not have type metadata attached to them.
> > > > In lowerTypeTestCall() we check if the pointer in the type test is
> of a known type, so we look at bitcast and then select operands. foo and
> bar in select are global objects with no type meta...
2018 May 01
0
ThinLTO + CFI
...ThinLTO backend invocation of LowerTypeTestsModule::lower(). This
> is after I moved this pass down in the pipeline so it’s invoked after
> inlining.
> > > > >
> > > > > The declarations for foo() and bar() are read in at the time of
> module import, Importer.importFunctions() in lto::thinBackend(). They do
> not have type metadata attached to them.
> > > > > In lowerTypeTestCall() we check if the pointer in the type test is
> of a known type, so we look at bitcast and then select operands. foo and
> bar in select are global objects with no type...
2018 May 01
2
ThinLTO + CFI
...() on entry to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
> > > > >
> > > > > The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> > > > > In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata, so t...
2018 May 01
0
ThinLTO + CFI
...ackend invocation of LowerTypeTestsModule::lower(). This
> is after I moved this pass down in the pipeline so it’s invoked after
> inlining.
> > > > > >
> > > > > > The declarations for foo() and bar() are read in at the time of
> module import, Importer.importFunctions() in lto::thinBackend(). They do
> not have type metadata attached to them.
> > > > > > In lowerTypeTestCall() we check if the pointer in the type test
> is of a known type, so we look at bitcast and then select operands. foo and
> bar in select are global objects with no...
2018 May 02
1
ThinLTO + CFI
...y to ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after I moved this pass down in the pipeline so it’s invoked after inlining.
> > > > > >
> > > > > > The declarations for foo() and bar() are read in at the time of module import, Importer.importFunctions() in lto::thinBackend(). They do not have type metadata attached to them.
> > > > > > In lowerTypeTestCall() we check if the pointer in the type test is of a known type, so we look at bitcast and then select operands. foo and bar in select are global objects with no type metadata,...
2018 May 01
0
llvm-dev Digest, Vol 167, Issue 3
...r main() on entry to
> ThinLTO backend invocation of LowerTypeTestsModule::lower(). This is after
> I moved this pass down in the pipeline so it’s invoked after inlining.
> > >
> > > The declarations for foo() and bar() are read in at the time of module
> import, Importer.importFunctions() in lto::thinBackend(). They do not have
> type metadata attached to them.
> > > In lowerTypeTestCall() we check if the pointer in the type test is of
> a known type, so we look at bitcast and then select operands. foo and bar
> in select are global objects with no type metadata,...