<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bcm5719-llvm/llvm/test/ExecutionEngine/OrcLazy, branch meklort-10.0.1</title>
<subtitle>Project Ortega BCM5719 LLVM</subtitle>
<id>https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1</id>
<link rel='self' href='https://git.raptorcs.com/git/bcm5719-llvm/atom?h=meklort-10.0.1'/>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/'/>
<updated>2020-01-29T20:50:16+00:00</updated>
<entry>
<title>[ORC] Add support for emulated TLS to ORCv2.</title>
<updated>2020-01-29T20:50:16+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2020-01-22T00:28:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=32723d572077e9a3776553a2067563974e85e7c8'/>
<id>urn:sha1:32723d572077e9a3776553a2067563974e85e7c8</id>
<content type='text'>
This commit adds a ManglingOptions struct to IRMaterializationUnit, and replaces
IRCompileLayer::CompileFunction with a new IRCompileLayer::IRCompiler class. The
ManglingOptions struct defines the emulated-TLS state (via a bool member,
EmulatedTLS, which is true if emulated-TLS is enabled and false otherwise). The
IRCompileLayer::IRCompiler class wraps an IRCompiler (the same way that the
CompileFunction typedef used to), but adds a method to return the
IRCompileLayer::ManglingOptions that the compiler will use.

These changes allow us to correctly determine the symbols that will be produced
when a thread local global variable defined at the IR level is compiled with or
without emulated TLS. This is required for ORCv2, where MaterializationUnits
must declare their interface up-front.

Most ORCv2 clients should not require any changes. Clients writing custom IR
compilers will need to wrap their compiler in an IRCompileLayer::IRCompiler,
rather than an IRCompileLayer::CompileFunction, however this should be a
straightforward change (see modifications to CompileUtils.* in this patch for an
example).

(cherry picked from commit ce2207abaf9a925b35f15ef92aaff6b301ba6d22)
</content>
</entry>
<entry>
<title>[ORC] Fix argv handling in runAsMain / lli.</title>
<updated>2020-01-11T21:03:38+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2020-01-11T20:58:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=2cdb18afda841392002feafda21af31854c195b3'/>
<id>urn:sha1:2cdb18afda841392002feafda21af31854c195b3</id>
<content type='text'>
This fixes an off-by-one error in the argc value computed by runAsMain, and
switches lli back to using the input bitcode (rather than the string "lli") as
the effective program name.

Thanks to Stefan Graenitz for spotting the bug.
</content>
</entry>
<entry>
<title>[ORC] Refactor definition-generation, add a generator for static libraries.</title>
<updated>2019-08-13T16:05:18+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2019-08-13T16:05:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=52a34a78d9aff1bb5e66e7c32490229ea177e075'/>
<id>urn:sha1:52a34a78d9aff1bb5e66e7c32490229ea177e075</id>
<content type='text'>
This patch replaces the JITDylib::DefinitionGenerator typedef with a class of
the same name, and adds support for attaching a sequence of DefinitionGeneration
objects to a JITDylib.

This patch also adds a new definition generator,
StaticLibraryDefinitionGenerator, that can be used to add symbols fom a static
library to a JITDylib. An object from the static library will be added (via
a supplied ObjectLayer reference) whenever a symbol from that object is
referenced.

To enable testing, lli is updated to add support for the --extra-archive option
when running in -jit-kind=orc-lazy mode.

llvm-svn: 368707
</content>
</entry>
<entry>
<title>[ORC] Re-apply r345077 with fixes to remove ambiguity in lookup calls.</title>
<updated>2018-10-23T23:01:39+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2018-10-23T23:01:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=23cb2e7f7705eea783a8202afe27623eb4e0108e'/>
<id>urn:sha1:23cb2e7f7705eea783a8202afe27623eb4e0108e</id>
<content type='text'>
llvm-svn: 345098
</content>
</entry>
<entry>
<title>Revert r345077 "[ORC] Change how non-exported symbols are matched during lookup."</title>
<updated>2018-10-23T20:54:43+00:00</updated>
<author>
<name>Reid Kleckner</name>
<email>rnk@google.com</email>
</author>
<published>2018-10-23T20:54:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=db367e952e8198706ab73ffc5f7bd7ba3e8164c8'/>
<id>urn:sha1:db367e952e8198706ab73ffc5f7bd7ba3e8164c8</id>
<content type='text'>
Doesn't build on Windows. The call to 'lookup' is ambiguous. Clang and
MSVC agree, anyway.

http://lab.llvm.org:8011/builders/clang-x64-windows-msvc/builds/787
C:\b\slave\clang-x64-windows-msvc\build\llvm.src\unittests\ExecutionEngine\Orc\CoreAPIsTest.cpp(315): error C2668: 'llvm::orc::ExecutionSession::lookup': ambiguous call to overloaded function
C:\b\slave\clang-x64-windows-msvc\build\llvm.src\include\llvm/ExecutionEngine/Orc/Core.h(823): note: could be 'llvm::Expected&lt;llvm::JITEvaluatedSymbol&gt; llvm::orc::ExecutionSession::lookup(llvm::ArrayRef&lt;llvm::orc::JITDylib *&gt;,llvm::orc::SymbolStringPtr)'
C:\b\slave\clang-x64-windows-msvc\build\llvm.src\include\llvm/ExecutionEngine/Orc/Core.h(817): note: or       'llvm::Expected&lt;llvm::JITEvaluatedSymbol&gt; llvm::orc::ExecutionSession::lookup(const llvm::orc::JITDylibSearchList &amp;,llvm::orc::SymbolStringPtr)'
C:\b\slave\clang-x64-windows-msvc\build\llvm.src\unittests\ExecutionEngine\Orc\CoreAPIsTest.cpp(315): note: while trying to match the argument list '(initializer list, llvm::orc::SymbolStringPtr)'

llvm-svn: 345078
</content>
</entry>
<entry>
<title>[ORC] Change how non-exported symbols are matched during lookup.</title>
<updated>2018-10-23T20:20:22+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2018-10-23T20:20:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=841796decdcc7818736a7f7ba28fc636a6a497d2'/>
<id>urn:sha1:841796decdcc7818736a7f7ba28fc636a6a497d2</id>
<content type='text'>
In the new scheme the client passes a list of (JITDylib&amp;, bool) pairs, rather
than a list of JITDylibs. For each JITDylib the boolean indicates whether or not
to match against non-exported symbols (true means that they should be found,
false means that they should not). The MatchNonExportedInJD and MatchNonExported
parameters on lookup are removed.

The new scheme is more flexible, and easier to understand.

This patch also updates JITDylib search orders to be lists of (JITDylib&amp;, bool)
pairs to match the new lookup scheme. Error handling is also plumbed through
the LLJIT class to allow regression tests to fail predictably when a lookup from
a lazy call-through fails.

llvm-svn: 345077
</content>
</entry>
<entry>
<title>[ORC] Add some more basic sanity tests for the LLJIT.</title>
<updated>2018-10-20T20:39:53+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2018-10-20T20:39:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=e433cf1fd718f90bb7118a49ccfceff8b515cde8'/>
<id>urn:sha1:e433cf1fd718f90bb7118a49ccfceff8b515cde8</id>
<content type='text'>
minimal.ll contains a main function that returns zero, and
single-function-call.ll contains a main function that calls a foo function that
returns zero. These minimal tests can help to rule out some trivial JIT bugs
when other tests fail.

This commit also renames hello.ll to global-ctors-and-dtors.ll, which better
reflects what it is actually testing.

llvm-svn: 344863
</content>
</entry>
<entry>
<title>[ORC] Add partitioning support to CompileOnDemandLayer2.</title>
<updated>2018-09-29T23:49:57+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2018-09-29T23:49:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=98440293fb903f69dbec401b8b4826b1fa206385'/>
<id>urn:sha1:98440293fb903f69dbec401b8b4826b1fa206385</id>
<content type='text'>
CompileOnDemandLayer2 now supports user-supplied partition functions (the
original CompileOnDemandLayer already supported these).

Partition functions are called with the list of requested global values
(i.e. global values that currently have queries waiting on them) and have an
opportunity to select extra global values to materialize at the same time.

Also adds testing infrastructure for the new feature to lli.

llvm-svn: 343396
</content>
</entry>
<entry>
<title>Reapply r343058 with a fix for -DLLVM_ENABLE_THREADS=OFF.</title>
<updated>2018-09-26T16:26:59+00:00</updated>
<author>
<name>Lang Hames</name>
<email>lhames@gmail.com</email>
</author>
<published>2018-09-26T16:26:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=f0a3fd885dfb416423f525e58c901d8632e2780a'/>
<id>urn:sha1:f0a3fd885dfb416423f525e58c901d8632e2780a</id>
<content type='text'>
Modifies lit to add a 'thread_support' feature that can be used in lit test
REQUIRES clauses. The thread_support flag is set if -DLLVM_ENABLE_THREADS=ON
and unset if -DLLVM_ENABLE_THREADS=OFF. The lit flag is used to disable the
multiple-compile-threads-basic.ll testcase when threading is disabled.

llvm-svn: 343122
</content>
</entry>
<entry>
<title>Revert r343058 "[ORC] Add support for multithreaded compiles to LLJIT and LLLazyJIT."</title>
<updated>2018-09-26T12:15:23+00:00</updated>
<author>
<name>Hans Wennborg</name>
<email>hans@hanshq.net</email>
</author>
<published>2018-09-26T12:15:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.raptorcs.com/git/bcm5719-llvm/commit/?id=20b5abe23b33b924a9f1a7ad62f3a9d9e118ebf5'/>
<id>urn:sha1:20b5abe23b33b924a9f1a7ad62f3a9d9e118ebf5</id>
<content type='text'>
This doesn't work well in builds configured with LLVM_ENABLE_THREADS=OFF,
causing the following assert when running
ExecutionEngine/OrcLazy/multiple-compile-threads-basic.ll:

  lib/ExecutionEngine/Orc/Core.cpp:1748: Expected&lt;llvm::JITEvaluatedSymbol&gt;
  llvm::orc::lookup(const llvm::orc::JITDylibList &amp;, llvm::orc::SymbolStringPtr):
  Assertion `ResultMap-&gt;size() == 1 &amp;&amp; "Unexpected number of results"' failed.

&gt; LLJIT and LLLazyJIT can now be constructed with an optional NumCompileThreads
&gt; arguments. If this is non-zero then a thread-pool will be created with the
&gt; given number of threads, and compile tasks will be dispatched to the thread
&gt; pool.
&gt;
&gt; To enable testing of this feature, two new flags are added to lli:
&gt;
&gt; (1) -compile-threads=N (N = 0 by default) controls the number of compile threads
&gt; to use.
&gt;
&gt; (2) -thread-entry can be used to execute code on additional threads. For each
&gt; -thread-entry argument supplied (multiple are allowed) a new thread will be
&gt; created and the given symbol called. These additional thread entry points are
&gt; called after static constructors are run, but before main.

llvm-svn: 343099
</content>
</entry>
</feed>
