Commit
1097fab1cf41e786a659b1fe45a1494170be6952
by jdoerfert[Attributor] Deduce memory behavior of functions and arguments Deduce the memory behavior, aka "read-none", "read-only", or "write-only", for functions and arguments. Reviewers: sstefan1, uenoku Subscribers: hiraditya, bollu, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D67384 llvm-svn: 373965
|
 | llvm/test/Transforms/FunctionAttrs/liveness.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/internal-noalias.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/nofree-attributor.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/nonnull.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/align.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/nosync.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/noalias_returned.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/arg_nocapture.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/read_write_returned_arguments_scc.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/arg_returned.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/dereferenceable.ll (diff) |
 | llvm/include/llvm/Transforms/IPO/Attributor.h (diff) |
 | llvm/test/Transforms/FunctionAttrs/nocapture.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/norecurse.ll (diff) |
 | llvm/lib/Transforms/IPO/Attributor.cpp (diff) |
 | llvm/test/Transforms/FunctionAttrs/readattrs.ll (diff) |
 | llvm/test/Transforms/FunctionAttrs/willreturn.ll (diff) |
Commit
f5d700ac05cb3b3fdb22619186ce9f0376dcca10
by shal1t712[llvm-lipo] Relax the check of the specified input file architecture cctools lipo only compares the cputypes when it verifies that the specified (via -arch) input file and the architecture match. This diff adjusts the behavior of llvm-lipo accordingly. Differential revision: https://reviews.llvm.org/D68319 Test plan: make check-all llvm-svn: 373966
|
 | llvm/tools/llvm-lipo/llvm-lipo.cpp (diff) |
Commit
58af5be28dafedafba3fb20ba35ac0ae4f2c570a
by aheejin[WebAssembly] Add memory intrinsics handling to mayThrow() Summary: Previously, `WebAssembly::mayThrow()` assumed all inputs are global addresses. But when intrinsics, such as `memcpy`, `memmove`, or `memset` are lowered to external symbols in instruction selection and later emitted as library calls. And these functions don't throw. This patch adds handling to those memory intrinsics to `mayThrow` function. But while most of libcalls don't throw, we can't guarantee all of them don't throw, so currently we conservatively return true for all other external symbols. I think a better way to solve this problem is to embed 'nounwind' info in `TargetLowering::CallLoweringInfo`, so that we can access the info from the backend. This will also enable transferring 'nounwind' properties of LLVM IR instructions. Currently we don't transfer that info and we can only access properties of callee functions, if the callees are within the module. Other targets don't need this info in the backend because they do all the processing before isel, but it will help us because that info will reduce code size increase in fixing unwind destination mismatches in CFGStackify. But for now we return false for these memory intrinsics and true for all other libcalls conservatively. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D68553 llvm-svn: 373967
|
 | llvm/test/CodeGen/WebAssembly/cfg-stackify-eh.ll (diff) |
 | llvm/lib/Target/WebAssembly/WebAssemblyUtilities.cpp (diff) |