toolchain_nuclei_gnu.mk 6.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. $(info Using Nuclei $(CPU_SERIES) series optimization compiling flags!)
  2. ifeq ($(CPU_SERIES),1000)
  3. # Benchmark options for 1000
  4. BENCH_FLAGS ?= -Ofast -fgcse-las -ffloat-store -mbranch-cost=1 -mstrict-align -funroll-all-loops \
  5. -fno-if-conversion -ftree-dominator-opts -fno-selective-scheduling -finline-functions -falign-functions=12 \
  6. -falign-jumps=8 -finline-limit=400 -fno-common -fno-tree-vectorize -fno-tree-loop-ivcanon \
  7. --param max-jump-thread-duplication-stmts=8 -fno-tree-partial-pre -fno-tree-copy-prop -fno-associative-math -ftrapping-math -fno-toplevel-reorder \
  8. -fstack-protector -fno-sched-last-insn-heuristic -fno-sched-dep-count-heuristic -fno-ipa-bit-cp -fno-function-cse \
  9. -fno-cse-follow-jumps -fno-crossjumping --param max-grow-copy-bb-insns=25
  10. else ifeq ($(CPU_SERIES),900)
  11. ifneq ($(findstring x,$(CORE)),)
  12. #ux900
  13. BENCH_FLAGS ?= -Ofast -fgcse-las -fno-code-hoisting -fipa-pta -mbranch-cost=1 -funroll-all-loops -finline-limit=300 \
  14. -fno-crossjumping -fno-version-loops-for-strides \
  15. -fno-tree-sra -fno-tree-sink -fno-tree-partial-pre \
  16. -fno-shrink-wrap-separate -ffloat-store -funroll-loops -falign-functions=16 \
  17. -falign-jumps=8 -falign-loops=6 -fno-if-conversion2 -fno-tree-loop-ivcanon \
  18. -fstack-protector -fno-tree-loop-distribute-patterns -fno-cse-follow-jumps -fno-sched-dep-count-heuristic --param loop-max-datarefs-for-datadeps=4 \
  19. --param max-jump-thread-duplication-stmts=30 --param fsm-scale-path-stmts=3 --param max-grow-copy-bb-insns=12
  20. else
  21. #u900
  22. BENCH_FLAGS ?= -Ofast -mno-autovec-dsp -fno-shrink-wrap-separate -fno-tree-partial-pre -fno-version-loops-for-strides -mbranch-cost=1 -mstrict-align -funroll-all-loops -finline-limit=350 \
  23. -fno-code-hoisting -fno-sched-last-insn-heuristic -fno-toplevel-reorder -fno-tree-copy-prop -fno-crossjumping -fno-bit-tests -ftree-dominator-opts -funroll-loops -finline-functions -falign-functions=4 \
  24. -fno-ipa-bit-cp -falign-jumps=16 -falign-loops=8 -fno-if-conversion2 -fno-tree-loop-ivcanon \
  25. -fgcse-las --param=max-loop-header-insns=3 --param loop-max-datarefs-for-datadeps=6 \
  26. --param max-jump-thread-duplication-stmts=58 --param fsm-scale-path-stmts=3 --param max-grow-copy-bb-insns=12
  27. endif
  28. else ifeq ($(CPU_SERIES),600)
  29. # Benchmark options for 600
  30. ifneq ($(findstring x,$(CORE)),)
  31. #ux600
  32. BENCH_FLAGS ?= -Ofast -fno-version-loops-for-strides -ffloat-store -mbranch-cost=1 -mstrict-align -funroll-all-loops -finline-limit=500 \
  33. -ftree-dominator-opts -funroll-loops -finline-functions -falign-functions=8 \
  34. -falign-jumps=8 -falign-loops=6 -fno-if-conversion2 -fno-tree-loop-distribute-patterns -fno-tree-loop-ivcanon \
  35. --param=max-loop-header-insns=2 --param=unroll-jam-min-percent=0 \
  36. --param max-jump-thread-duplication-stmts=12 --param fsm-scale-path-stmts=3 --param max-grow-copy-bb-insns=12
  37. else
  38. #u600
  39. BENCH_FLAGS ?= -Ofast -fno-version-loops-for-strides -ffloat-store -mbranch-cost=1 -mstrict-align -funroll-all-loops -finline-limit=300 \
  40. -ftree-dominator-opts -funroll-loops -finline-functions -falign-functions=8 \
  41. -falign-jumps=8 -falign-loops=8 -fipa-pta -fno-code-hoisting -fno-if-conversion \
  42. -fno-if-conversion2 -fno-tree-loop-distribute-patterns -fno-tree-loop-ivcanon \
  43. -ftree-vrp --param=max-loop-header-insns=2 --param=unroll-jam-min-percent=0 \
  44. --param max-jump-thread-duplication-stmts=12 --param fsm-scale-path-stmts=3 --param max-grow-copy-bb-insns=12
  45. endif
  46. else ifeq ($(CPU_SERIES),300)
  47. # Benchmark options for 300
  48. BENCH_FLAGS ?= -Ofast -fno-code-hoisting -fno-common -finline-functions -falign-functions=6 \
  49. -falign-jumps=6 -falign-loops=4 -finline-limit=200 -fno-if-conversion -fno-if-conversion2 \
  50. -fselective-scheduling -fno-tree-loop-distribute-patterns -funroll-loops -funroll-all-loops \
  51. -fno-delete-null-pointer-checks -fno-rename-registers -mbranch-cost=1 --param fsm-scale-path-stmts=3 \
  52. --param max-average-unrolled-insns=200 --param max-grow-copy-bb-insns=20 --param max-jump-thread-duplication-stmts=25 \
  53. --param hot-bb-frequency-fraction=4
  54. else
  55. # Benchmark options for 200 and 100
  56. BENCH_FLAGS ?= -Ofast -fno-code-hoisting -fno-common -finline-functions -falign-functions=10 \
  57. -falign-jumps=8 -falign-loops=8 -finline-limit=300 -fno-if-conversion -fno-if-conversion2 \
  58. -fselective-scheduling -fno-tree-loop-distribute-patterns -funroll-loops -funroll-all-loops \
  59. -fno-delete-null-pointer-checks -mbranch-cost=1 --param fsm-scale-path-stmts=3 \
  60. --param max-average-unrolled-insns=400 --param max-grow-copy-bb-insns=20 --param max-jump-thread-duplication-stmts=26 \
  61. --param hot-bb-frequency-fraction=4 --param unroll-jam-min-percent=0
  62. endif
  63. # Backup options
  64. #BENCH_FLAGS ?= -Ofast -msave-restore -fno-code-hoisting -fno-tree-vectorize -fno-common \
  65. -finline-functions -falign-functions=4 -falign-jumps=4 -falign-loops=4 \
  66. -finline-limit=200 -fno-if-conversion -fno-if-conversion2 -fno-tree-dominator-opts \
  67. -fno-tree-loop-distribute-patterns -funroll-loops -funroll-all-loops \
  68. --param fsm-scale-path-stmts=5 --param max-average-unrolled-insns=200 \
  69. --param max-grow-copy-bb-insns=16
  70. #BENCH_FLAGS ?= -Ofast -msave-restore -fno-code-hoisting -fschedule-insns -fschedule-insns2 \
  71. -fno-tree-vectorize -fno-common -funroll-all-loops -finline-functions \
  72. -falign-functions=4 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 \
  73. -fno-if-conversion -fno-if-conversion2 -fno-tree-dominator-opts \
  74. -fno-tree-loop-distribute-patterns --param fsm-scale-path-stmts=5
  75. #BENCH_FLAGS ?= -Ofast -fno-code-hoisting -fschedule-insns -fschedule-insns2 \
  76. -fno-tree-vectorize -fno-common -funroll-loops -finline-functions \
  77. -falign-functions=4 -falign-jumps=4 -falign-loops=4 -finline-limit=1000 \
  78. -fno-if-conversion -fno-if-conversion2 -fselective-scheduling -fno-tree-dominator-opts
  79. #BENCH_FLAGS ?= -O2 -funroll-all-loops -finline-limit=600 -ftree-dominator-opts -fno-if-conversion2 -fselective-scheduling -fno-code-hoisting -fno-common -funroll-loops -finline-functions -falign-functions=4 -falign-jumps=4 -falign-loops=4
  80. #BENCH_FLAGS ?= -O3 -funroll-loops -fpeel-loops -fgcse-sm -fgcse-las
  81. # Optimize just for code size
  82. #BENCH_FLAGS ?= -Os -flto
  83. #BENCH_FLAGS ?= -Os