Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
sesiuni:llvm:llvmopt [2015/09/10 09:52]
freescale [The LLVM optimization engine]
sesiuni:llvm:llvmopt [2015/09/10 11:20] (current)
freescale
Line 74: Line 74:
  
 == Task 2 == == Task 2 ==
-Generate the LLVM IR for //​vectorization/​cross.c//​ by specifying -O3 to **clang**. 
-Try to force SLP vectorization by adding **-fslp-vectorize-aggressive** to the previous command. 
-Remove the **restrict** qualifiers from the pointers and recompile. 
- 
-== Task 3 == 
 Generate the LLVM IR for //​dead-code/​sum.c//​. Generate the LLVM IR for //​dead-code/​sum.c//​.
 Run dead code elimination by specifying **-dce** to **opt**. Run dead code elimination by specifying **-dce** to **opt**.
 Use **-mem2reg** option to promote memory references to register references. Use **-mem2reg** option to promote memory references to register references.
  
-== Task ==+== Task ==
 Generate the LLVM IR for //​loop-unrolling/​week.c//​. Generate the LLVM IR for //​loop-unrolling/​week.c//​.
 Run loop unrolling by specifying **-loop-unroll** to **opt**. Run loop unrolling by specifying **-loop-unroll** to **opt**.
Line 90: Line 85:
 Remove redundant branches by running CFG simplification (**-simplifycfg**). Remove redundant branches by running CFG simplification (**-simplifycfg**).
  
-== Task ==+== Task ==
 Generate the LLVM IR for //​loop-invariant/​normalize.c//​. Generate the LLVM IR for //​loop-invariant/​normalize.c//​.
 Run loop invariant by specifying **-licm** to **opt**. Run loop invariant by specifying **-licm** to **opt**.
  
-== Task ==+== Task ==
 Generate the LLVM IR for //​loop-unswitching/​accumulate.c//​. Generate the LLVM IR for //​loop-unswitching/​accumulate.c//​.
 Run loop unswitching by specifying **-loop-unswitch** to **opt**. Run loop unswitching by specifying **-loop-unswitch** to **opt**.
 Run again with the CFG simplication enabled. Run again with the CFG simplication enabled.
  
-== Task ==+== Task ==
 Generate the LLVM IR for //​inlining/​sort.c//​. Generate the LLVM IR for //​inlining/​sort.c//​.
 Enable inlining by specifying **-inline** to **opt**. Enable inlining by specifying **-inline** to **opt**.
  
-== Task ==+== Task ==
 Generate the LLVM IR for //​tail-elim/​factorial.c//​. Generate the LLVM IR for //​tail-elim/​factorial.c//​.
 Enable tail call elimination by specifying **-tailcallelim** to **opt**. Enable tail call elimination by specifying **-tailcallelim** to **opt**.
  
sesiuni/llvm/llvmopt.txt · Last modified: 2015/09/10 11:20 by freescale