/llvm-project/polly/test/CodeGen/OpenMP/ |
H A D | single_loop.ll | 1 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force '-passes=print<polly-ast>' -disable-… 2 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force -passes=polly-codegen -S -verify-dom… 4 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force '-passes=polly-import-jscop,print<po… 5 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force '-passes=polly-import-jscop,polly-co… 7 …opt %loadNPMPolly -polly-parallel -polly-parallel-force -passes=polly-codegen -polly-omp-backend=L… 8 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force -passes=polly-codegen -polly-omp-bac… 9 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force -passes=polly-codegen -polly-omp-bac… 10 …opt %loadNPMPolly -polly-parallel -polly-parallel-force -passes=polly-codegen -polly-omp-backend=L… 11 ; RUN: opt %loadNPMPolly -polly-parallel -polly-parallel-force '-passes=polly-import-jscop,polly-co… 37 ; IR-NEXT: %polly.par.userContext = alloca [all …]
|
H A D | new_multidim_access.ll | 1 ; RUN: opt %loadPolly -polly-print-import-jscop \ 4 ; RUN: opt %loadPolly -polly-import-jscop \ 5 ; RUN: -polly-codegen -S < %s \ 6 ; RUN: -polly-parallel \ 22 ; IR: %polly.access.mul.polly.subfunc.arg.A = mul nsw i64 %polly.indvar, %polly.subfunc.arg.m 23 ; IR: %6 = add nsw i64 %polly.indvar4, 13 24 ; IR: %polly [all...] |
/llvm-project/polly/docs/experiments/matmul/ |
H A D | runall.sh | 6 echo "--> 2. Prepare the LLVM-IR for Polly" 7 opt -S -polly-canonicalize matmul.ll -o matmul.preopt.ll 9 echo "--> 3. Show the SCoPs detected by Polly" 10 opt -basic-aa -polly-ast -analyze matmul.preopt.ll \ 11 -polly-process-unprofitable -polly-use-llvm-names 17 opt -basic-aa -dot-scops -disable-output matmul.preopt.ll -polly-use-llvm-names 24 opt -basic-aa -dot-scops-only -disable-output matmul.preopt.ll -polly-use-llvm-names 30 opt -basic-aa -polly-scops -analyze matmul.preopt.ll \ 31 -polly-process-unprofitable -polly-use-llvm-names 34 opt -basic-aa -polly-dependences -analyze matmul.preopt.ll \ [all …]
|
H A D | matmul.polly.interchanged+tiled+vector+openmp.ll | 18 %polly.par.userContext = alloca {}, align 8 19 %polly.par.userContext1 = bitcast {}* %polly.par.userContext to i8* 20 …p_runtime_start(void (i8*)* nonnull @init_array_polly_subfn, i8* nonnull %polly.par.userContext1, … 21 call void @init_array_polly_subfn(i8* nonnull %polly.par.userContext1) #3 75 %polly.par.userContext3 = alloca {}, align 8 77 %polly.par.userContext1 = bitcast {}* %polly.par.userContext3 to i8* 78 …el_loop_runtime_start(void (i8*)* nonnull @main_polly_subfn, i8* nonnull %polly.par.userContext1, … 79 call void @main_polly_subfn(i8* nonnull %polly.par.userContext1) #3 81 …_loop_runtime_start(void (i8*)* nonnull @main_polly_subfn_1, i8* nonnull %polly.par.userContext1, … 82 call void @main_polly_subfn_1(i8* nonnull %polly.par.userContext1) #3 [all …]
|
H A D | matmul.polly.interchanged+tiled.ll | 18 br label %polly.loop_header 20 polly.exiting: ; preds = %polly.loop_exit3 23 polly.loop_header: ; preds = %polly.loop_exit3, %entry 24 %polly.indvar = phi i64 [ 0, %entry ], [ %polly.indvar_next, %polly.loop_exit3 ] 25 %0 = trunc i64 %polly.indvar to i32 26 br label %polly.loop_header1 28 polly.loop_exit3: ; preds = %polly.loop_header1 29 %polly.indvar_next = add nuw nsw i64 %polly.indvar, 1 30 %exitcond1 = icmp eq i64 %polly.indvar_next, 1536 31 br i1 %exitcond1, label %polly.exiting, label %polly.loop_header [all …]
|
H A D | matmul.polly.interchanged+tiled+vector.ll | 18 br label %polly.loop_header 20 polly.exiting: ; preds = %polly.loop_exit3 23 polly.loop_header: ; preds = %polly.loop_exit3, %entry 24 %polly.indvar = phi i64 [ 0, %entry ], [ %polly.indvar_next, %polly.loop_exit3 ] 25 %0 = trunc i64 %polly.indvar to i32 26 br label %polly.loop_header1 28 polly.loop_exit3: ; preds = %polly.loop_header1 29 %polly.indvar_next = add nuw nsw i64 %polly.indvar, 1 30 %exitcond1 = icmp eq i64 %polly.indvar_next, 1536 31 br i1 %exitcond1, label %polly.exiting, label %polly.loop_header, !llvm.loop !2 [all …]
|
H A D | matmul.polly.interchanged.ll | 18 br label %polly.loop_header 20 polly.exiting: ; preds = %polly.loop_exit3 23 polly.loop_header: ; preds = %polly.loop_exit3, %entry 24 %polly.indvar = phi i64 [ 0, %entry ], [ %polly.indvar_next, %polly.loop_exit3 ] 25 %0 = trunc i64 %polly.indvar to i32 26 br label %polly.loop_header1 28 polly.loop_exit3: ; preds = %polly.loop_header1 29 %polly.indvar_next = add nuw nsw i64 %polly.indvar, 1 30 %exitcond1 = icmp eq i64 %polly.indvar_next, 1536 31 br i1 %exitcond1, label %polly.exiting, label %polly.loop_header [all …]
|
/llvm-project/llvm/test/CodeGen/Hexagon/ |
H A D | hwloop5.ll | 16 br i1 %cmp6, label %polly.cond, label %for.end 22 %sum.0.lcssa.reg2mem.0.load37 = phi i32 [ 0, %entry.split ], [ %p_add34, %polly.loop_if13 ], [ %p_add, %for.end.loopexit ] 25 polly.cond: 27 br i1 %0, label %polly.loop_if, label %polly.loop_if13 29 polly.loop_exit.loopexit: 30 br label %polly.loop_exit 32 polly.loop_exit: 33 %1 = phi <2 x i32> [ zeroinitializer, %polly.loop_if ], [ %addp_vec, %polly [all...] |
/llvm-project/llvm/test/CodeGen/Hexagon/vect/ |
H A D | vect-v4i16.ll | 12 br i1 %cmp5, label %for.end, label %polly.cond 14 for.end.loopexit: ; preds = %polly.stmt.for.body29 17 for.end: ; preds = %for.end.loopexit, %polly.loop_header24.preheader, %entry 20 polly.cond: ; preds = %entry 22 br i1 %0, label %polly.then, label %polly.loop_header24.preheader 24 polly.then: ; preds = %polly.cond 28 br i1 %2, label %polly.loop_body.lr.ph, label %polly [all...] |
H A D | vect-extract.ll | 26 br i1 %brmerge, label %polly.loop_header26.preheader, label %polly.loop_body.lr.ph 28 for.inc9.loopexit: ; preds = %polly.stmt.for.body331 31 for.inc9: ; preds = %for.inc9.loopexit, %polly.loop_header26.preheader 42 polly.loop_body.lr.ph: ; preds = %for.cond1.preheader.single_entry 50 br label %polly.loop_body 52 polly.loop_body: ; preds = %polly.loop_body.lr.ph, %polly.loop_body 53 %p_arrayidx8.phi = phi ptr [ %p_arrayidx8.gep, %polly [all...] |
H A D | vect-truncate.ll | 13 br i1 undef, label %polly.loop_header43, label %for.body 15 do.cond: ; preds = %polly.loop_header 18 do.end: ; preds = %polly.loop_after45 21 polly.loop_header: ; preds = %polly.loop_after45, %polly.loop_body 23 br i1 %0, label %polly.loop_body, label %do.cond 25 polly.loop_body: ; preds = %polly.loop_header 30 br label %polly [all...] |
/llvm-project/polly/docs/ |
H A D | UsingPollyWithClang.rst | 2 Using Polly with Clang 5 This documentation discusses how Polly can be used in Clang to automatically 11 Warning: clang/LLVM/Polly need to be in sync (compiled from the same 14 Make Polly available from Clang 17 Polly is available through clang, opt, and bugpoint, if Polly was checked out 18 into tools/polly before compilation. No further configuration is needed. 20 Optimizing with Polly 23 Optimizing with Polly is as easy as adding -O3 -mllvm -polly t [all...] |
H A D | HowToManuallyUseTheIndividualPiecesOfPolly.rst | 2 How to manually use the Individual pieces of Polly 5 Execute the individual Polly passes manually 11 code with Polly. We show how to execute them individually and explain for 18 Polly works on LLVM-IR. Hence it is necessary to translate the source 27 2. **Prepare the LLVM-IR for Polly** 30 Polly is only able to work with code that matches a canonical form. 33 '-polly-canonicalize'. 37 opt -S -polly-canonicalize matmul.ll -o matmul.preopt.ll 39 3. **Show the SCoPs detected by Polly (optional)** 42 To understand if Polly was able to detect SCoPs, we print the structure [all …]
|
/llvm-project/polly/test/CodeGen/ |
H A D | invariant_load_base_pointer_conditional_2.ll | 1 ; RUN: opt %loadNPMPolly -polly-invariant-load-hoisting=true '-passes=print<polly-function-scops>' … 2 ; RUN: opt %loadNPMPolly -S -passes=polly-codegen -polly-invariant-load-hoisting=true < %s | FileCh… 3 ; RUN: opt %loadNPMPolly -S -passes=polly-codegen -polly-invariant-load-hoisting=true --polly-overf… 17 ; IR: polly.preload.merge: 18 ; IR-NEXT: %polly.preload.tmp1.merge = phi ptr [ %polly.access.I.load, %polly.preload.exec ], [ n… 19 ; IR-NEXT: store ptr %polly.preload.tmp1.merge, ptr %tmp1.preload.s2a 26 ; IR-NEXT: %polly.overflow.state5 = or i1 false, %.obit4 34 ; IR-NEXT: %polly.overflow.state8 = or i1 %polly.overflow.state5, %.obit7 38 ; IR-NEXT: %polly.preload.cond.overflown10 = xor i1 %polly.overflow.state8, true 39 ; IR-NEXT: %polly.preload.cond.result11 = and i1 %23, %polly.preload.cond.overflown10 [all …]
|
H A D | single_loop_param_less_equal.ll | 1 ; RUN: opt %loadNPMPolly '-passes=print<polly-ast>' -disable-output < %s | FileCheck %s 2 ; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN 3 ; RUN: opt %loadNPMPolly -passes=polly-codegen < %s | opt -passes='print<loops>' -disable-output 2>… 36 ; CODEGEN: polly.start: 37 ; CODEGEN: br label %polly.loop_if 39 ; CODEGEN: polly.loop_exit: 40 ; CODEGEN: br label %polly.merge_new_and_old 42 ; CODEGEN: polly.loop_if: 43 ; CODEGEN: %polly.loop_guard = icmp sle i64 0, %n 44 ; CODEGEN: br i1 %polly.loop_guard, label %polly.loop_preheader, label %polly.loop_exit [all …]
|
H A D | single_loop_param_less_than.ll | 1 ; RUN: opt %loadNPMPolly '-passes=print<polly-ast>' -disable-output < %s | FileCheck %s 2 ; RUN: opt %loadNPMPolly -passes=polly-codegen -S < %s | FileCheck %s -check-prefix=CODEGEN 34 ; CODEGEN: polly.start: 35 ; CODEGEN: br label %polly.loop_if 37 ; CODEGEN: polly.loop_exit: 38 ; CODEGEN: br label %polly.merge_new_and_old 40 ; CODEGEN: polly.loop_if: 41 ; CODEGEN: %polly.loop_guard = icmp slt i64 0, %n 42 ; CODEGEN: br i1 %polly.loop_guard, label %polly.loop_preheader, label %polly.loop_exit 44 ; CODEGEN: polly.loop_header: [all …]
|
H A D | partial_write_in_region_with_loop.ll | 1 ; RUN: opt %loadNPMPolly '-passes=polly-import-jscop,polly-codegen' \ 2 ; RUN: -polly-import-jscop-postfix=transformed \ 3 ; RUN: -verify-dom-info -polly-allow-nonaffine-loops \ 9 ; CHECK:polly.stmt.bb3: 10 ; CHECK-NEXT: %polly.subregion.iv = phi i32 [ %polly.subregion.iv.inc, %polly.stmt.bb5.cont ], [ 0… 11 ; CHECK-NEXT: %polly.j.0 = phi i64 [ %j.0.phiops.reload, %polly.stmt.bb3.entry ], [ %p_tmp10, %pol… 12 ; CHECK-NEXT: %8 = zext nneg i64 %polly.indvar to i65 13 ; CHECK-NEXT: %9 = add nsw i64 %polly.indvar, -1 19 ; CHECK-NEXT: %15 = add i64 %polly.indvar, %14 20 ; CHECK-NEXT: %p_tmp4 = icmp slt i64 %polly.j.0, %15 [all …]
|
H A D | partial_write_in_region.ll | 1 ; RUN: opt %loadNPMPolly '-passes=polly-import-jscop,polly-codegen' \ 2 ; RUN: -polly-import-jscop-postfix=transformed \ 15 ; CHECK: polly.stmt.bb5: ; preds = %polly.stmt.bb2 16 ; CHECK-NEXT: %[[offset:.*]] = shl nuw nsw i64 %polly.indvar, 2 20 ; CHECK-NEXT: %[[cmp:.*]] = icmp sle i64 %polly.indvar, 9 21 ; CHECK-NEXT: %polly.Stmt_bb2__TO__bb9_MayWrite2.cond = icmp ne i1 %[[cmp]], false 22 …CHECK-NEXT: br i1 %polly.Stmt_bb2__TO__bb9_MayWrite2.cond, label %polly.stmt.bb5.Stmt_bb2__TO__b… 24 ; CHECK: polly.stmt.bb5.Stmt_bb2__TO__bb9_MayWrite2.partial: ; preds = %polly.stmt.bb5 25 ; CHECK-NEXT: %polly.access.B11 = getelementptr float, ptr %B, i64 %polly.indvar 26 ; CHECK-NEXT: store float %p_tmp8, ptr %polly.access.B11 [all …]
|
H A D | invariant_load_ptr_ptr_noalias.ll | 1 ; RUN: opt %loadNPMPolly -polly-process-unprofitable -passes=polly-codegen -polly-invariant-load-ho… 3 ; CHECK-LABEL: polly.preload.begin: 4 ; CHECK: %polly.access.A = getelementptr ptr, ptr %A, i64 42 5 ; CHECK: %polly.access.A.load = load ptr, ptr %polly.access.A 6 ; CHECK: %polly.access.polly.access.A.load = getelementptr ptr, ptr %polly.access.A.load, i64 32 7 ; CHECK: %polly.access.polly.access.A.load.load = load ptr, ptr %polly.access.polly.access.A.load 9 ; CHECK: polly.stmt.bb2: 10 ; CHECK: %[[offset:.*]] = shl nuw nsw i64 %polly.indvar, 2 11 ; CHECK: %scevgep = getelementptr i8, ptr %polly.access.polly.access.A.load.load, i64 %[[offset]]
|
/llvm-project/polly/lib/Support/ |
H A D | PollyPasses.def | 4 FUNCTION_ANALYSIS("polly-detect", ScopAnalysis()) 5 FUNCTION_ANALYSIS("polly-function-scops", ScopInfoAnalysis()) 11 FUNCTION_PASS("polly-prepare", CodePreparationPass()) 12 FUNCTION_PASS("print<polly-detect>", ScopAnalysisPrinterPass(llvm::errs())) 13 FUNCTION_PASS("print<polly-function-scops>", ScopInfoPrinterPass(llvm::errs())) 14 FUNCTION_PASS("polly-scop-viewer", ScopViewer()) 15 FUNCTION_PASS("polly-scop-only-viewer", ScopOnlyViewer()) 16 FUNCTION_PASS("polly-scop-printer", ScopPrinter()) 17 FUNCTION_PASS("polly-scop-only-printer", ScopOnlyPrinter()) 24 SCOP_ANALYSIS("polly-ast", IslAstAnalysis()) [all …]
|
H A D | RegisterPasses.cpp | 1 //===------ RegisterPasses.cpp - Add the Polly Passes to default passes --===// 9 // This file composes the individual LLVM-IR passes provided by Polly to a 11 // made available to LLVM based compilers by loading the Polly shared library 14 // The Polly optimizer is made available by executing a static constructor that 15 // registers the individual Polly passes in the LLVM pass manager builder. The 17 // changed, but that the flag '-polly' provided at optimization level '-O3' 21 #include "polly/RegisterPasses.h" 22 #include "polly/Canonicalization.h" 23 #include "polly/CodeGen/CodeGeneration.h" 24 #include "polly/CodeGe 62 namespace polly { global() namespace [all...] |
/llvm-project/polly/include/polly/ |
H A D | LinkAllPasses.h | 1 //===- polly/LinkAllPasses.h ----------- Reference All Passes ---*- C++ -*-===// 17 #include "polly/Config/config.h" 18 #include "polly/Support/DumpFunctionPass.h" 19 #include "polly/Support/DumpModulePass.h" 28 namespace polly { 70 } // namespace polly 82 polly::createCodePreparationPass(); in PollyForcePassLinking() 83 polly::createDeadCodeElimWrapperPass(); in PollyForcePassLinking() 84 polly::createDependenceInfoPass(); in PollyForcePassLinking() 85 polly::createDependenceInfoPrinterLegacyPass(llvm::outs()); in PollyForcePassLinking() [all …]
|
/llvm-project/polly/test/CodeGen/MemAccess/ |
H A D | generate-all.ll | 1 ; RUN: opt %loadNPMPolly -passes=polly-codegen -polly-codegen-generate-expressions=false \ 3 ; RUN: opt %loadNPMPolly -passes=polly-codegen -polly-codegen-generate-expressions=true \ 11 ; SCEV: polly.stmt.bb2: ; preds = %polly.loop_header 12 ; SCEV-NEXT: %0 = trunc i64 %polly.indvar to i2 19 ; SCEV-NEXT: %polly.indvar_next = add nsw i64 %polly.indvar, 1 20 ; SCEV-NEXT: %polly [all...] |
H A D | map_scalar_access.ll | 1 ; RUN: opt %loadPolly -polly-stmt-granularity=bb -polly-import-jscop-postfix=transformed -polly-pri… 2 ; RUN: opt %loadPolly -polly-stmt-granularity=bb -polly-import-jscop-postfix=transformed -polly-imp… 117 ; CODEGEN: polly.stmt.outer.for: 118 ; CODEGEN-NEXT: %polly.access.A[[R0:[0-9]*]] = getelementptr double, ptr %A, i64 %polly.indvar 119 ; CODEGEN-NEXT: store double 0.000000e+00, ptr %polly.access.A[[R0]] 120 ; CODEGEN-NEXT: br label %polly.cond 122 ; CODEGEN: polly.stmt.reduction.exit: 123 ; CODEGEN-NEXT: %polly.access.A[[R1:[0-9]*]] = getelementptr double, ptr %A, i64 0 124 ; CODEGEN-NEXT: %polly.access.A[[R1]].reload = load double, ptr %polly.access.A[[R1]] 125 ; CODEGEN-NEXT: %polly.access.A[[R2:[0-9]*]] = getelementptr double, ptr %A, i64 0 [all …]
|
/llvm-project/polly/test/ |
H A D | CMakeLists.txt | 3 add_custom_target(check-polly) 4 set_target_properties(check-polly PROPERTIES FOLDER "Polly/Meta") 41 list(APPEND POLLY_TEST_DEPS polly-isl-test) 61 add_lit_testsuite(check-polly-tests "Running polly regression tests" 67 add_dependencies(check-polly check-polly-tests) 76 add_lit_testsuite(check-polly-unittests "Running polly unit tests only" 89 add_lit_testsuite(check-polly-isl "Running isl unit tests only" 93 DEPENDS polly-isl-test 97 # Run polly-check-format as part of polly-check only if we are compiling with 100 # after Polly, i.e. there is no such target yet at this point. The CMake cache [all …]
|