SuccessChanges

Summary

  1. [MCJIT] Migrate function attribute "no-frame-pointer-elim" to (details)
  2. [Attributor] Function level undefined behavior attribute (details)
  3. [Attributor] UB Attribute now handles all instructions that access (details)
  4. [compiler-rt] [netbsd] Define _RTLD_SOURCE to fix build (details)
Commit 583ef13f0be7b0045f9508dfceee17ab4ef4b1ea by maskray
[MCJIT] Migrate function attribute "no-frame-pointer-elim" to
"frame-pointer"
The file was modifiedllvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp
Commit 58f324a468ffc66398199f1a55218e10b718e495 by johannes
[Attributor] Function level undefined behavior attribute
_Eventually_, this attribute will be assigned to a function if it
contains undefined behavior. As a first small step, I tried to make it
loop through the load instructions in a function (eventually, the plan
is to check if a load instructions causes undefined behavior, because
e.g. dereferences a null pointer - Also eventually, this won't happen in
initialize() but in updateImpl()).
Patch By: Stefanos Baziotis (@baziotis)
Reviewed By: jdoerfert
Differential Revision: https://reviews.llvm.org/D71435
The file was addedllvm/test/Transforms/Attributor/undefined_behavior.ll
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 5732f56bbd28be6cab976e1df0d87ac5ffae7fcd by johannes
[Attributor] UB Attribute now handles all instructions that access
memory through a pointer
Summary: Follow-up on: https://reviews.llvm.org/D71435 We basically use
`checkForAllInstructions` to loop through all the instructions in a
function that access memory through a pointer: load, store, atomicrmw,
atomiccmpxchg Note that we can now use the `getPointerOperand()` that
gets us the pointer operand for an instruction that belongs to the
aforementioned set.
Question: This function returns `nullptr` if the instruction is
`volatile`. Why? Guess:  Because if it is volatile, we don't want to do
any transformation to it.
Another subtle point is that I had to add AtomicRMW, AtomicCmpXchg to
`initializeInformationCache()`. Following `checkAllInstructions()` path,
that seemed the most reasonable place to add it and correct the fact
that these instructions were ignored (they were not in `OpcodeInstMap`
etc.). Is that ok?
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert, sstefan1
Subscribers: hiraditya, jfb, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D71787
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
The file was modifiedllvm/test/Transforms/Attributor/undefined_behavior.ll
Commit 52b5fe5f45b1908e140e05a4eceaaac7002be768 by n54
[compiler-rt] [netbsd] Define _RTLD_SOURCE to fix build
The TLS base (LWP private pointer) functions are namespaced and hidden
i.e. inside the _RTLD_SOURCE namespace.
The file was modifiedcompiler-rt/lib/sanitizer_common/sanitizer_linux_libcdep.cpp