[llvm-branch-commits] [compiler-rt] 414d3dc - [VE][compiler-rt] Support VE in clear_cache.c

Kazushi Marukawa via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Mon Dec 7 00:38:31 PST 2020


Author: Kazushi (Jam) Marukawa
Date: 2020-12-07T17:38:23+09:00
New Revision: 414d3dc62c706f41226b0d552210c79f5080df43

URL: https://github.com/llvm/llvm-project/commit/414d3dc62c706f41226b0d552210c79f5080df43
DIFF: https://github.com/llvm/llvm-project/commit/414d3dc62c706f41226b0d552210c79f5080df43.diff

LOG: [VE][compiler-rt] Support VE in clear_cache.c

Support SX Aurora VE by __clear_cache() function.  This modification
allows VE to run written data, e.g. clear_cache_test.c under compiler-rt
test.  We still have code alignment problem in enable_execute_stack_test.c,
though.

Reviewed By: simoll

Differential Revision: https://reviews.llvm.org/D92703

Added: 
    

Modified: 
    compiler-rt/lib/builtins/clear_cache.c

Removed: 
    


################################################################################
diff  --git a/compiler-rt/lib/builtins/clear_cache.c b/compiler-rt/lib/builtins/clear_cache.c
index e9e291467bd9..5a443ddd4b03 100644
--- a/compiler-rt/lib/builtins/clear_cache.c
+++ b/compiler-rt/lib/builtins/clear_cache.c
@@ -167,6 +167,8 @@ void __clear_cache(void *start, void *end) {
 #if __APPLE__
   // On Darwin, sys_icache_invalidate() provides this functionality
   sys_icache_invalidate(start, end - start);
+#elif defined(__ve__)
+  __asm__ volatile("fencec 2");
 #else
   compilerrt_abort();
 #endif


        


More information about the llvm-branch-commits mailing list