aboutsummaryrefslogtreecommitdiffstats
path: root/docs/LangRef.html
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2012-05-31 13:45:46 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2012-05-31 13:45:46 +0000
commitc49b29ef5d4071cc4679d5560855f446f95919fc (patch)
tree05467ba198eafc2c05ec42aefee52b4fbeb769db /docs/LangRef.html
parent177cf1e1a3685209ab805f82897902a8d2b61661 (diff)
downloadexternal_llvm-c49b29ef5d4071cc4679d5560855f446f95919fc.zip
external_llvm-c49b29ef5d4071cc4679d5560855f446f95919fc.tar.gz
external_llvm-c49b29ef5d4071cc4679d5560855f446f95919fc.tar.bz2
Require intervals in the range metadata to be in a canonical form: They must
be non contiguous, non overlapping and sorted by the lower end. While this is technically a backward incompatibility, every frontent currently produces range metadata with a single interval and we don't have any pass that merges intervals yet, so no existing bitcode files should be rejected by this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157741 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'docs/LangRef.html')
-rw-r--r--docs/LangRef.html4
1 files changed, 4 insertions, 0 deletions
diff --git a/docs/LangRef.html b/docs/LangRef.html
index 14589b4..45ee424 100644
--- a/docs/LangRef.html
+++ b/docs/LangRef.html
@@ -3054,6 +3054,8 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)
<li>The range should not represent the full or empty set. That is,
<tt>a!=b</tt>. </li>
</ul>
+<p> In addiion, the pairs must be in signed order of the lower bound and
+ they must be non contigous.</p>
<p>Examples:</p>
<div class="doc_code">
@@ -3061,10 +3063,12 @@ call void @llvm.dbg.value(metadata !24, i64 0, metadata !25)
%a = load i8* %x, align 1, !range !0 ; Can only be 0 or 1
%b = load i8* %y, align 1, !range !1 ; Can only be 255 (-1), 0 or 1
%c = load i8* %z, align 1, !range !2 ; Can only be 0, 1, 3, 4 or 5
+ %d = load i8* %z, align 1, !range !3 ; Can only be -2, -1, 3, 4 or 5
...
!0 = metadata !{ i8 0, i8 2 }
!1 = metadata !{ i8 255, i8 2 }
!2 = metadata !{ i8 0, i8 2, i8 3, i8 6 }
+!3 = metadata !{ i8 -2, i8 0, i8 3, i8 6 }
</pre>
</div>
</div>