summaryrefslogtreecommitdiff
path: root/polly/include
diff options
context:
space:
mode:
authorMichael Kruse <llvm-project@meinersbur.de>2021-09-26 03:06:19 -0500
committerMichael Kruse <llvm-project@meinersbur.de>2021-09-26 03:26:43 -0500
commit1cea25eec90e355c9b072edc1b6e1e9903d7bca4 (patch)
tree0087a3979d163a03240e633c31976219bb91e270 /polly/include
parente21b0ba8c9378bca01d2311be4e1b6ccd3397bc4 (diff)
downloadllvm-1cea25eec90e355c9b072edc1b6e1e9903d7bca4.tar.gz
[Polly] Remove isConstCall.
The function was intended to catch OpenMP functions such as get_thread_id(). If matched, the call would be considered synthesizable. There were a few problems with this: * get_thread_id() is not 'const' in the sense of have the gcc manual defines it: "do not examine any values except their arguments". get_thread_id() reads OpenCL runtime libreary global state. What was inteded was probably 'speculable'. * isConstCall was implemented using mayReadOrWriteMemory(). 'const' is stricter than that, mayReadOrWriteMemory is e.g. true for malloc(), since it may only read/write addresses that are considered inaccessible fro the application. However, malloc is certainly not speculable. * Values that are isConstCall were not handled consistently throughout Polly. In particular, it was not considered for referenced values (OpenMP outlining and PollyACC). Fix by removing special handling for isConstCall entirely.
Diffstat (limited to 'polly/include')
-rw-r--r--polly/include/polly/Support/SCEVValidator.h18
1 files changed, 0 insertions, 18 deletions
diff --git a/polly/include/polly/Support/SCEVValidator.h b/polly/include/polly/Support/SCEVValidator.h
index cf97655e50bd..5e816aa533b6 100644
--- a/polly/include/polly/Support/SCEVValidator.h
+++ b/polly/include/polly/Support/SCEVValidator.h
@@ -20,24 +20,6 @@ class SCEVConstant;
namespace polly {
class ScopDetection;
-/// Check if a call is side-effect free and has only constant arguments.
-///
-/// Such calls can be re-generated easily, so we do not need to model them
-/// as scalar dependences.
-///
-/// @param Call The call to check.
-bool isConstCall(llvm::CallInst *Call);
-
-/// Check if some parameters in the affine expression might hide induction
-/// variables. If this is the case, we will try to delinearize the accesses
-/// taking into account this information to possibly obtain a memory access
-/// with more structure. Currently we assume that each parameter that
-/// comes from a function call might depend on a (virtual) induction variable.
-/// This covers calls to 'get_global_id' and 'get_local_id' as they commonly
-/// arise in OpenCL code, while not catching any false-positives in our current
-/// tests.
-bool hasIVParams(const llvm::SCEV *Expr);
-
/// Find the loops referenced from a SCEV expression.
///
/// @param Expr The SCEV expression to scan for loops.