[llvm] r254956 - Remove useless hack that avoids calling LLVMLinkInInterpreter()
David Majnemer via llvm-commits
llvm-commits at lists.llvm.org
Mon Dec 7 14:40:16 PST 2015
On Mon, Dec 7, 2015 at 5:32 PM, David Blaikie via llvm-commits <
llvm-commits at lists.llvm.org> wrote:
>
>
> On Mon, Dec 7, 2015 at 2:27 PM, Mehdi Amini via llvm-commits <
> llvm-commits at lists.llvm.org> wrote:
>
>> Author: mehdi_amini
>> Date: Mon Dec 7 16:27:19 2015
>> New Revision: 254956
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=254956&view=rev
>> Log:
>> Remove useless hack that avoids calling LLVMLinkInInterpreter()
>>
>> This is supposed to force-link the Interpreter, by inserting a dead
>> call to LLVMLinkInInterpreter().
>> Since it is actually an empty function, there is no reason for the
>> call to be dead.
>>
>> From: Mehdi Amini <mehdi.amini at apple.com>
>>
>> Modified:
>> llvm/trunk/include/llvm/ExecutionEngine/Interpreter.h
>>
>> Modified: llvm/trunk/include/llvm/ExecutionEngine/Interpreter.h
>> URL:
>> http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ExecutionEngine/Interpreter.h?rev=254956&r1=254955&r2=254956&view=diff
>>
>> ==============================================================================
>> --- llvm/trunk/include/llvm/ExecutionEngine/Interpreter.h (original)
>> +++ llvm/trunk/include/llvm/ExecutionEngine/Interpreter.h Mon Dec 7
>> 16:27:19 2015
>> @@ -16,22 +16,12 @@
>> #define LLVM_EXECUTIONENGINE_INTERPRETER_H
>>
>> #include "llvm/ExecutionEngine/ExecutionEngine.h"
>> -#include <cstdlib>
>>
>> extern "C" void LLVMLinkInInterpreter();
>>
>> namespace {
>> struct ForceInterpreterLinking {
>> - ForceInterpreterLinking() {
>> - // We must reference the interpreter in such a way that compilers
>> will not
>> - // delete it all as dead code, even with whole program
>> optimization,
>> - // yet is effectively a NO-OP. As the compiler isn't smart enough
>> - // to know that getenv() never returns -1, this will do the job.
>> - if (std::getenv("bar") != (char*) -1)
>> - return;
>> -
>> - LLVMLinkInInterpreter();
>> - }
>> + ForceInterpreterLinking() { LLVMLinkInInterpreter(); }
>> } ForceInterpreterLinking;
>>
>
> Not sure if you want to, but could possibly simplify this further with
> something like:
>
> int i = (LLVMLinkInInterpreter(), 1);
>
> Maybe? Not sure if that's any better, stylistically, etc.
>
Personally, I'd find that more surprising than a global ctor.
>
>
>> }
>>
>>
>>
>> _______________________________________________
>> llvm-commits mailing list
>> llvm-commits at lists.llvm.org
>> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20151207/ffdd4e6b/attachment.html>
More information about the llvm-commits
mailing list