[PATCH] D18900: New pre-isel pass SystemZBRCTLoops
Jonas Paulsson via llvm-commits
llvm-commits at lists.llvm.org
Fri Apr 8 08:08:34 PDT 2016
jonpa created this revision.
jonpa added reviewers: hfinkel, uweigand.
jonpa added a subscriber: llvm-commits.
Herald added a subscriber: sanjoy.
I experimented with making a new pass for the improved generation of BRCT loops for SystemZ. This is based on PPCCTRLoops.cpp.
Results:
Number of brct's on SPEC:
w/out patch: 4752
w/out patch, unrolled: 1367
w/ patch: 8743
w/ patch, unrolled: 11518 (new prologue loops increase the number)
gcc with unrolling generates 20864 brct's, so this result is an improvement, although not necessarily near optimal.
This seemed necessary in order to activate the loop-unroller and tune it properly, otherwise a loop might get unrolled but the BRCT and some performance will be lost.
http://reviews.llvm.org/D18900
Files:
include/llvm/IR/IntrinsicsSystemZ.td
lib/Target/SystemZ/CMakeLists.txt
lib/Target/SystemZ/SystemZ.h
lib/Target/SystemZ/SystemZBRCTLoops.cpp
lib/Target/SystemZ/SystemZInstrInfo.td
lib/Target/SystemZ/SystemZTargetMachine.cpp
lib/Target/SystemZ/out.s
test/CodeGen/SystemZ/loop-brct.ll
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D18900.53025.patch
Type: text/x-patch
Size: 15746 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160408/dd84b7d4/attachment.bin>
More information about the llvm-commits
mailing list