This repository was archived by the owner on Jan 6, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathllvm-float-range.patch
More file actions
56 lines (51 loc) · 2.54 KB
/
Copy pathllvm-float-range.patch
File metadata and controls
56 lines (51 loc) · 2.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
diff -Naur llvm-3.4/include/llvm/IR/Intrinsics.td llvm-float-range/include/llvm/IR/Intrinsics.td
--- llvm-3.4/include/llvm/IR/Intrinsics.td 2013-10-31 17:18:14.000000000 +0000
+++ llvm-float-range/include/llvm/IR/Intrinsics.td 2014-12-30 15:58:34.000000000 +0000
@@ -403,6 +403,14 @@
llvm_ptr_ty, llvm_i32_ty],
[], "llvm.annotation">;
+//===---------------- Float range -----------------------------------------===//
+//
+def int_float_range : Intrinsic<[],
+ [llvm_anyfloat_ty,
+ llvm_i64_ty,
+ llvm_i64_ty],
+ [], "llvm.float.range">;
+
//===------------------------ Trampoline Intrinsics -----------------------===//
//
def int_init_trampoline : Intrinsic<[],
diff -Naur llvm-3.4/lib/Analysis/TargetTransformInfo.cpp llvm-float-range/lib/Analysis/TargetTransformInfo.cpp
--- llvm-3.4/lib/Analysis/TargetTransformInfo.cpp 2013-09-17 18:06:50.000000000 +0000
+++ llvm-float-range/lib/Analysis/TargetTransformInfo.cpp 2015-01-05 13:44:16.000000000 +0000
@@ -389,6 +389,7 @@
case Intrinsic::objectsize:
case Intrinsic::ptr_annotation:
case Intrinsic::var_annotation:
+ case Intrinsic::float_range:
// These intrinsics don't actually represent code after lowering.
return TCC_Free;
}
diff -Naur llvm-3.4/lib/CodeGen/IntrinsicLowering.cpp llvm-float-range/lib/CodeGen/IntrinsicLowering.cpp
--- llvm-3.4/lib/CodeGen/IntrinsicLowering.cpp 2013-11-10 04:46:57.000000000 +0000
+++ llvm-float-range/lib/CodeGen/IntrinsicLowering.cpp 2015-01-05 15:55:51.000000000 +0000
@@ -461,6 +461,9 @@
case Intrinsic::var_annotation:
break; // Strip out annotate intrinsic
+
+ case Intrinsic::float_range:
+ break; // Strip out float range intrinsic
case Intrinsic::memcpy: {
Type *IntPtr = TD.getIntPtrType(Context);
diff -Naur llvm-3.4/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp llvm-float-range/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
--- llvm-3.4/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 2013-12-15 21:02:34.000000000 +0000
+++ llvm-float-range/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp 2015-01-05 14:02:04.000000000 +0000
@@ -5166,6 +5166,10 @@
// Discard annotate attributes
return 0;
+ case Intrinsic::float_range:
+ // Discard float range tag attributes
+ return 0;
+
case Intrinsic::init_trampoline: {
const Function *F = cast<Function>(I.getArgOperand(1)->stripPointerCasts());