diff options
| author | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2016-02-04 13:08:48 +0000 |
|---|---|---|
| committer | Jonas Paulsson <paulsson@linux.vnet.ibm.com> | 2016-02-04 13:08:48 +0000 |
| commit | 2293685731bd02a352d36ca2a54211169631f5bd (patch) | |
| tree | b0c690f83b8a4f41aa2fb9e32891e528954e6a2f /llvm | |
| parent | e364e2e9ce50c12eb2bf093560e1a1a8544d455a (diff) | |
| download | bcm5719-llvm-2293685731bd02a352d36ca2a54211169631f5bd.tar.gz bcm5719-llvm-2293685731bd02a352d36ca2a54211169631f5bd.zip | |
[ScheduleDagInstrs] Improved comments
llvm-svn: 259783
Diffstat (limited to 'llvm')
| -rw-r--r-- | llvm/lib/CodeGen/ScheduleDAGInstrs.cpp | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp b/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp index 60759711002..92f64df5c70 100644 --- a/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp +++ b/llvm/lib/CodeGen/ScheduleDAGInstrs.cpp @@ -893,20 +893,20 @@ void ScheduleDAGInstrs::buildSchedGraph(AliasAnalysis *AA, // from bottom to top. // Each MIs' memory operand(s) is analyzed to a list of underlying - // objects. The SU is then inserted in the SUList(s) mapped from - // that Value(s). Each Value thus gets mapped to a list of SUs - // depending on it, defs and uses kept separately. Two SUs are - // non-aliasing to each other if they depend on different Values - // exclusively. + // objects. The SU is then inserted in the SUList(s) mapped from the + // Value(s). Each Value thus gets mapped to lists of SUs depending + // on it, stores and loads kept separately. Two SUs are trivially + // non-aliasing if they both depend on only identified Values and do + // not share any common Value. Value2SUsMap Stores, Loads(1 /*TrueMemOrderLatency*/); // Certain memory accesses are known to not alias any SU in Stores // or Loads, and have therefore their own 'NonAlias' // domain. E.g. spill / reload instructions never alias LLVM I/R - // Values. It is assumed that this type of memory accesses always - // have a proper memory operand modelling, and are therefore never - // unanalyzable. This means they are non aliasing against all nodes - // in Stores and Loads, including the unanalyzable ones. + // Values. It would be nice to assume that this type of memory + // accesses always have a proper memory operand modelling, and are + // therefore never unanalyzable, but this is conservatively not + // done. Value2SUsMap NonAliasStores, NonAliasLoads(1 /*TrueMemOrderLatency*/); // Always reduce a huge region with half of the elements, except |

