[llvm-dev] How to test that GlobalsAA is non unintentionally invalidated

Elovikov, Andrei via llvm-dev llvm-dev at lists.llvm.org
Fri Apr 7 03:09:44 PDT 2017


During the last month we've faced two cases where some performance degradations were observed due to GlobalsAA not being preserved till the LICM:
  1) New pass pgo-memop-opt (fixed in http://lists.llvm.org/pipermail/llvm-commits/Week-of-Mon-20170403/443360.html)
  2) GVNHoist (when it was moved to the simplification part of the pipeline)
So it would be good to guard against such issues. However, this highly depends on the particular structure of the optimization pipeline. 
LIT test like this seems to work:

; RUN: opt < %s -O3 -debug-pass=Details -disable-output 2>&1 | FileCheck %s
; CHECK-NOT: is not preserving 'Globals Alias Analysis'
; CHECK: 'Loop Invariant Code Motion' is not preserving 'Rotate Loops'
<some IR with simple loop>

but looks too hard-coded. Are there ways to do it in a cleaner manner?



Intel Technology Poland sp. z o.o.
ul. Slowackiego 173 | 80-298 Gdansk | Sad Rejonowy Gdansk Polnoc | VII Wydzial Gospodarczy Krajowego Rejestru Sadowego - KRS 101882 | NIP 957-07-52-316 | Kapital zakladowy 200.000 PLN.

Ta wiadomosc wraz z zalacznikami jest przeznaczona dla okreslonego adresata i moze zawierac informacje poufne. W razie przypadkowego otrzymania tej wiadomosci, prosimy o powiadomienie nadawcy oraz trwale jej usuniecie; jakiekolwiek
przegladanie lub rozpowszechnianie jest zabronione.
This e-mail and any attachments may contain confidential material for the sole use of the intended recipient(s). If you are not the intended recipient, please contact the sender and delete all copies; any review or distribution by
others is strictly prohibited.

More information about the llvm-dev mailing list