llvmlite 0.44.0rc1__cp311-cp311-macosx_11_0_arm64.whl → 0.45.0rc1__cp311-cp311-macosx_11_0_arm64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of llvmlite might be problematic. Click here for more details.

llvmlite/tests/test_ir.py CHANGED
@@ -12,9 +12,7 @@ import unittest
12
12
  from . import TestCase
13
13
  from llvmlite import ir
14
14
  from llvmlite import binding as llvm
15
-
16
- # FIXME: Remove me once typed pointers are no longer supported.
17
- from llvmlite import opaque_pointers_enabled
15
+ from llvmlite import ir_layer_typed_pointers_enabled
18
16
 
19
17
 
20
18
  int1 = ir.IntType(1)
@@ -123,10 +121,9 @@ class TestBase(TestCase):
123
121
 
124
122
  class TestFunction(TestBase):
125
123
 
126
- # FIXME: Remove `else' once TP are no longer supported.
127
124
  proto = \
128
125
  """i32 @"my_func"(i32 %".1", i32 %".2", double %".3", ptr %".4")""" \
129
- if opaque_pointers_enabled else \
126
+ if not ir_layer_typed_pointers_enabled else \
130
127
  """i32 @"my_func"(i32 %".1", i32 %".2", double %".3", i32* %".4")"""
131
128
 
132
129
  def test_declare(self):
@@ -146,8 +143,7 @@ class TestFunction(TestBase):
146
143
  pers = ir.Function(self.module(), tp_pers, '__gxx_personality_v0')
147
144
  func.attributes.personality = pers
148
145
  asm = self.descr(func).strip()
149
- # FIXME: Remove `else' once TP are no longer supported.
150
- if opaque_pointers_enabled:
146
+ if not ir_layer_typed_pointers_enabled:
151
147
  self.assertEqual(asm,
152
148
  ("declare %s alwaysinline convergent optsize "
153
149
  "alignstack(16) "
@@ -172,8 +168,7 @@ class TestFunction(TestBase):
172
168
  func.args[3].add_attribute("nonnull")
173
169
  func.return_value.add_attribute("noalias")
174
170
  asm = self.descr(func).strip()
175
- # FIXME: Remove `else' once TP are no longer supported.
176
- if opaque_pointers_enabled:
171
+ if not ir_layer_typed_pointers_enabled:
177
172
  self.assertEqual(asm,
178
173
  """declare noalias i32 @"my_func"(i32 zeroext %".1", i32 dereferenceable(5) dereferenceable_or_null(10) %".2", double %".3", ptr nonnull align 4 %".4")""" # noqa E501
179
174
  )
@@ -284,12 +279,11 @@ class TestFunction(TestBase):
284
279
  assume = module.declare_intrinsic('llvm.assume')
285
280
  self.check_descr(self.descr(powi).strip(), """\
286
281
  declare double @"llvm.powi.f64"(double %".1", i32 %".2")""")
287
- # FIXME: Remove `else' once TP are no longer supported.
288
- if opaque_pointers_enabled:
282
+ if not ir_layer_typed_pointers_enabled:
289
283
  self.check_descr(self.descr(memset).strip(), """\
290
- declare void @"llvm.memset.p0i8.i32"(ptr %".1", i8 %".2", i32 %".3", i1 %".4")""") # noqa E501
284
+ declare void @"llvm.memset.p0.i32"(ptr %".1", i8 %".2", i32 %".3", i1 %".4")""") # noqa E501
291
285
  self.check_descr(self.descr(memcpy).strip(), """\
292
- declare void @"llvm.memcpy.p0i8.p0i8.i32"(ptr %".1", ptr %".2", i32 %".3", i1 %".4")""") # noqa E501
286
+ declare void @"llvm.memcpy.p0.p0.i32"(ptr %".1", ptr %".2", i32 %".3", i1 %".4")""") # noqa E501
293
287
  else:
294
288
  self.check_descr(self.descr(memset).strip(), """\
295
289
  declare void @"llvm.memset.p0i8.i32"(i8* %".1", i8 %".2", i32 %".3", i1 %".4")""") # noqa E501
@@ -402,8 +396,7 @@ class TestIR(TestBase):
402
396
  # A null metadata (typed) value
403
397
  mod = self.module()
404
398
  mod.add_metadata([int32.as_pointer()(None)])
405
- # FIXME: Remove `else' once TP are no longer supported.
406
- if opaque_pointers_enabled:
399
+ if not ir_layer_typed_pointers_enabled:
407
400
  self.assert_ir_line("!0 = !{ ptr null }", mod)
408
401
  else:
409
402
  self.assert_ir_line("!0 = !{ i32* null }", mod)
@@ -490,6 +483,71 @@ class TestIR(TestBase):
490
483
  '"foo")', strmod)
491
484
  self.assert_valid_ir(mod)
492
485
 
486
+ def test_debug_info_3(self):
487
+ # Identical DIBasicType metadata nodes should be merged
488
+ mod = self.module()
489
+ di1 = mod.add_debug_info("DIBasicType", {
490
+ "name": "i8",
491
+ "size": 8,
492
+ "encoding": ir.DIToken("DW_ATE_unsigned")
493
+ })
494
+ di2 = mod.add_debug_info("DIBasicType", {
495
+ "name": "i8",
496
+ "size": 8,
497
+ "encoding": ir.DIToken("DW_ATE_unsigned")
498
+ })
499
+ di3 = mod.add_debug_info("DIBasicType", {
500
+ "name": "i32",
501
+ "size": 32,
502
+ "encoding": ir.DIToken("DW_ATE_unsigned")
503
+ })
504
+ di4 = mod.add_debug_info("DIBasicType", {
505
+ "name": "i8",
506
+ "size": 8,
507
+ "encoding": ir.DIToken("DW_ATE_unsigned")
508
+ })
509
+ di5 = mod.add_debug_info("DIBasicType", {
510
+ "name": "i8",
511
+ "size": 8,
512
+ "encoding": ir.DIToken("DW_ATE_unsigned")
513
+ })
514
+ di6 = mod.add_debug_info("DIBasicType", {
515
+ "name": "i32",
516
+ "size": 32,
517
+ "encoding": ir.DIToken("DW_ATE_unsigned")
518
+ })
519
+ di7 = mod.add_debug_info("DIBasicType", {
520
+ "name": "i64",
521
+ "size": 64,
522
+ "encoding": ir.DIToken("DW_ATE_signed")
523
+ })
524
+ di8 = mod.add_debug_info("DIBasicType", {
525
+ "name": "i64",
526
+ "size": 64,
527
+ "encoding": ir.DIToken("DW_ATE_signed")
528
+ })
529
+ di9 = mod.add_debug_info("DIBasicType", {
530
+ "name": "i64",
531
+ "size": 64,
532
+ "encoding": ir.DIToken("DW_ATE_signed")
533
+ })
534
+ self.assertIs(di1, di2)
535
+ self.assertIs(di1, di4)
536
+ self.assertIs(di1, di5)
537
+ self.assertIs(di3, di6)
538
+ self.assertIs(di7, di8)
539
+ self.assertIs(di7, di9)
540
+ self.assertEqual(len({di1, di2, di3, di4, di5, di6, di7, di8, di9}), 3)
541
+ # Check output
542
+ strmod = str(mod)
543
+ self.assert_ir_line('!0 = !DIBasicType(encoding: DW_ATE_unsigned, '
544
+ 'name: "i8", size: 8)', strmod)
545
+ self.assert_ir_line('!1 = !DIBasicType(encoding: DW_ATE_unsigned, '
546
+ 'name: "i32", size: 32)', strmod)
547
+ self.assert_ir_line('!2 = !DIBasicType(encoding: DW_ATE_signed, '
548
+ 'name: "i64", size: 64)', strmod)
549
+ self.assert_valid_ir(mod)
550
+
493
551
  def test_debug_info_gvar(self):
494
552
  # This test defines a module with a global variable named 'gvar'.
495
553
  # When the module is compiled and linked with a main function, gdb can
@@ -623,8 +681,7 @@ class TestGlobalValues(TestBase):
623
681
  with self.assertRaises(KeyError):
624
682
  mod.get_global('kkk')
625
683
  # Globals should have a useful repr()
626
- # FIXME: Remove `else' once TP are no longer supported.
627
- if opaque_pointers_enabled:
684
+ if not ir_layer_typed_pointers_enabled:
628
685
  self.assertEqual(repr(globdouble),
629
686
  "<ir.GlobalVariable 'globdouble' of type 'ptr'>")
630
687
  else:
@@ -1027,6 +1084,11 @@ my_block:
1027
1084
  self.assertEqual(j.type, ir.VoidType())
1028
1085
  k = builder.load_atomic(c, ordering="seq_cst", align=4, name='k')
1029
1086
  self.assertEqual(k.type, int32)
1087
+ if not ir_layer_typed_pointers_enabled:
1088
+ ptr = ir.Constant(ir.PointerType(), None)
1089
+ else:
1090
+ ptr = ir.Constant(ir.PointerType(int32), None)
1091
+ builder.store(ir.Constant(int32, 5), ptr)
1030
1092
  # Not pointer types
1031
1093
  with self.assertRaises(TypeError):
1032
1094
  builder.store(b, a)
@@ -1035,8 +1097,8 @@ my_block:
1035
1097
  # Mismatching pointer type
1036
1098
  with self.assertRaises(TypeError) as cm:
1037
1099
  builder.store(b, e)
1038
- # FIXME: Remove `else' once TP are no longer supported.
1039
- if opaque_pointers_enabled:
1100
+
1101
+ if not ir_layer_typed_pointers_enabled:
1040
1102
  self.assertEqual(str(cm.exception),
1041
1103
  "cannot store i32 to ptr: mismatching types")
1042
1104
  self.check_block(block, """\
@@ -1051,6 +1113,7 @@ my_block:
1051
1113
  %"i" = load i32, ptr %"c", align 1
1052
1114
  store atomic i32 %".2", ptr %"c" seq_cst, align 4
1053
1115
  %"k" = load atomic i32, ptr %"c" seq_cst, align 4
1116
+ store i32 5, ptr null
1054
1117
  """)
1055
1118
  else:
1056
1119
  self.assertEqual(str(cm.exception),
@@ -1067,6 +1130,7 @@ my_block:
1067
1130
  %"i" = load i32, i32* %"c", align 1
1068
1131
  store atomic i32 %".2", i32* %"c" seq_cst, align 4
1069
1132
  %"k" = load atomic i32, i32* %"c" seq_cst, align 4
1133
+ store i32 5, i32* null
1070
1134
  """)
1071
1135
 
1072
1136
  def test_gep(self):
@@ -1076,8 +1140,7 @@ my_block:
1076
1140
  c = builder.alloca(ir.PointerType(int32), name='c')
1077
1141
  d = builder.gep(c, [ir.Constant(int32, 5), a], name='d')
1078
1142
  self.assertEqual(d.type, ir.PointerType(int32))
1079
- # FIXME: Remove `else' once TP are no longer supported.
1080
- if opaque_pointers_enabled:
1143
+ if not ir_layer_typed_pointers_enabled:
1081
1144
  self.check_block(block, """\
1082
1145
  my_block:
1083
1146
  %"c" = alloca ptr
@@ -1102,8 +1165,7 @@ my_block:
1102
1165
  d = builder.bitcast(a, ls.as_pointer(), name='d')
1103
1166
  e = builder.gep(d, [ir.Constant(int32, x) for x in [0, 3]], name='e')
1104
1167
  self.assertEqual(e.type, ir.PointerType(int8ptr))
1105
- # FIXME: Remove `else' once TP are no longer supported.
1106
- if opaque_pointers_enabled:
1168
+ if not ir_layer_typed_pointers_enabled:
1107
1169
  self.check_block(block, """\
1108
1170
  my_block:
1109
1171
  %"d" = bitcast i32 %".1" to ptr
@@ -1129,8 +1191,7 @@ my_block:
1129
1191
  e = builder.gep(d, [ir.Constant(int32, x) for x in [0, 3]], name='e')
1130
1192
  self.assertEqual(e.type.addrspace, addrspace)
1131
1193
  self.assertEqual(e.type, ir.PointerType(int8ptr, addrspace=addrspace))
1132
- # FIXME: Remove `else' once TP are no longer supported.
1133
- if opaque_pointers_enabled:
1194
+ if not ir_layer_typed_pointers_enabled:
1134
1195
  self.check_block(block, """\
1135
1196
  my_block:
1136
1197
  %"d" = bitcast i32 %".1" to ptr addrspace(4)
@@ -1149,8 +1210,7 @@ my_block:
1149
1210
  a, b = builder.function.args[:2]
1150
1211
  addrspace = 4
1151
1212
  c = builder.alloca(ir.PointerType(int32, addrspace=addrspace), name='c')
1152
- # FIXME: Remove `else' once TP are no longer supported.
1153
- if opaque_pointers_enabled:
1213
+ if not ir_layer_typed_pointers_enabled:
1154
1214
  self.assertEqual(str(c.type), 'ptr')
1155
1215
  else:
1156
1216
  self.assertEqual(str(c.type), 'i32 addrspace(4)**')
@@ -1159,8 +1219,7 @@ my_block:
1159
1219
  self.assertEqual(d.type.addrspace, addrspace)
1160
1220
  e = builder.gep(d, [ir.Constant(int32, 10)], name='e')
1161
1221
  self.assertEqual(e.type.addrspace, addrspace)
1162
- # FIXME: Remove `else' once TP are no longer supported.
1163
- if opaque_pointers_enabled:
1222
+ if not ir_layer_typed_pointers_enabled:
1164
1223
  self.check_block(block, """\
1165
1224
  my_block:
1166
1225
  %"c" = alloca ptr addrspace(4)
@@ -1221,8 +1280,7 @@ my_block:
1221
1280
  # Replacement value has the wrong type
1222
1281
  builder.insert_value(c_inner, a, 1)
1223
1282
 
1224
- # FIXME: Remove `else' once TP are no longer supported.
1225
- if opaque_pointers_enabled:
1283
+ if not ir_layer_typed_pointers_enabled:
1226
1284
  self.check_block(block, """\
1227
1285
  my_block:
1228
1286
  %"c" = extractvalue {i32, i1} {i32 4, i1 true}, 0
@@ -1270,8 +1328,7 @@ my_block:
1270
1328
  j = builder.inttoptr(i, ir.PointerType(int8), 'j') # noqa F841
1271
1329
  k = builder.bitcast(a, flt, "k") # noqa F841
1272
1330
  self.assertFalse(block.is_terminated)
1273
- # FIXME: Remove `else' once TP are no longer supported.
1274
- if opaque_pointers_enabled:
1331
+ if not ir_layer_typed_pointers_enabled:
1275
1332
  self.check_block(block, """\
1276
1333
  my_block:
1277
1334
  %"c" = trunc i32 %".1" to i8
@@ -1311,8 +1368,7 @@ my_block:
1311
1368
  c = builder.alloca(int32, name='c')
1312
1369
  d = builder.atomic_rmw('add', c, a, 'monotonic', 'd')
1313
1370
  self.assertEqual(d.type, int32)
1314
- # FIXME: Remove `else' once TP are no longer supported.
1315
- if opaque_pointers_enabled:
1371
+ if not ir_layer_typed_pointers_enabled:
1316
1372
  self.check_block(block, """\
1317
1373
  my_block:
1318
1374
  %"c" = alloca i32
@@ -1374,8 +1430,7 @@ my_block:
1374
1430
  indirectbr.add_destination(bb_1)
1375
1431
  indirectbr.add_destination(bb_2)
1376
1432
  self.assertTrue(block.is_terminated)
1377
- # FIXME: Remove `else' once TP are no longer supported.
1378
- if opaque_pointers_enabled:
1433
+ if not ir_layer_typed_pointers_enabled:
1379
1434
  self.check_block(block, """\
1380
1435
  my_block:
1381
1436
  indirectbr ptr blockaddress(@"my_func", %"b_1"), [label %"b_1", label %"b_2"]
@@ -1497,8 +1552,7 @@ my_block:
1497
1552
  a = builder.alloca(int32, name="a")
1498
1553
  b = builder.module.add_metadata(())
1499
1554
  builder.call(dbg_declare, (a, b, b))
1500
- # FIXME: Remove `else' once TP are no longer supported.
1501
- if opaque_pointers_enabled:
1555
+ if not ir_layer_typed_pointers_enabled:
1502
1556
  self.check_block(block, """\
1503
1557
  my_block:
1504
1558
  %"a" = alloca i32
@@ -1528,8 +1582,7 @@ my_block:
1528
1582
  2: 'noalias'
1529
1583
  }
1530
1584
  )
1531
- # FIXME: Remove `else' once TP are no longer supported.
1532
- if opaque_pointers_enabled:
1585
+ if not ir_layer_typed_pointers_enabled:
1533
1586
  self.check_block_regex(block, """\
1534
1587
  my_block:
1535
1588
  %"retval" = alloca i32
@@ -1620,8 +1673,7 @@ my_block:
1620
1673
  2: 'noalias'
1621
1674
  }
1622
1675
  )
1623
- # FIXME: Remove `else' once TP are no longer supported.
1624
- if opaque_pointers_enabled:
1676
+ if not ir_layer_typed_pointers_enabled:
1625
1677
  self.check_block_regex(block, """\
1626
1678
  my_block:
1627
1679
  %"retval" = alloca i32
@@ -1650,8 +1702,7 @@ my_block:
1650
1702
  lp.add_clause(ir.FilterClause(ir.Constant(ir.ArrayType(
1651
1703
  int_typeinfo.type, 1), [int_typeinfo])))
1652
1704
  builder.resume(lp)
1653
- # FIXME: Remove `else' once TP are no longer supported.
1654
- if opaque_pointers_enabled:
1705
+ if not ir_layer_typed_pointers_enabled:
1655
1706
  self.check_block(block, """\
1656
1707
  my_block:
1657
1708
  %"lp" = landingpad {i32, ptr}
@@ -2338,8 +2389,7 @@ class TestBuilderMisc(TestBase):
2338
2389
  builder = ir.IRBuilder(block)
2339
2390
  builder.debug_metadata = builder.module.add_metadata([])
2340
2391
  builder.alloca(ir.PointerType(int32), name='c')
2341
- # FIXME: Remove `else' once TP are no longer supported.
2342
- if opaque_pointers_enabled:
2392
+ if not ir_layer_typed_pointers_enabled:
2343
2393
  self.check_block(block, """\
2344
2394
  my_block:
2345
2395
  %"c" = alloca ptr, !dbg !0
@@ -2404,6 +2454,75 @@ class TestTypes(TestBase):
2404
2454
  self.assertFalse(tp == other, (tp, other))
2405
2455
  self.assertTrue(tp != other, (tp, other))
2406
2456
 
2457
+ def test_ptr_comparisons(self):
2458
+ # Create instances of:
2459
+ # * Opaque pointers.
2460
+ # * Typed pointers of i1's.
2461
+ # * Typed pointers of i8's.
2462
+ # The choice of types for the typed pointers are not consequential -
2463
+ # they just need to differ. Each pointer class has two instances, one
2464
+ # in address space 0, another in address space 1.
2465
+ ptrs = {
2466
+ 'op_a0': ir.PointerType(),
2467
+ 'op_a1': ir.PointerType(addrspace=1),
2468
+ 'tp_i1_a0': ir.PointerType(int1),
2469
+ 'tp_i1_a1': ir.PointerType(int1, addrspace=1),
2470
+ 'tp_i8_a0': ir.PointerType(int8),
2471
+ 'tp_i8_a1': ir.PointerType(int8, addrspace=1),
2472
+ }
2473
+
2474
+ def assert_eq(ptr1, ptr2):
2475
+ self.assertTrue(ptr1 == ptr2, (ptr1, ptr2))
2476
+ self.assertTrue(ptr2 == ptr1, (ptr2, ptr1))
2477
+
2478
+ self.assertFalse(ptr1 != ptr2, (ptr1, ptr2))
2479
+ self.assertFalse(ptr2 != ptr1, (ptr2, ptr1))
2480
+
2481
+ def assert_ne(ptr1, ptr2):
2482
+ self.assertFalse(ptr1 == ptr2, (ptr1, ptr2))
2483
+ self.assertFalse(ptr2 == ptr1, (ptr2, ptr1))
2484
+
2485
+ self.assertTrue(ptr1 != ptr2, (ptr1, ptr2))
2486
+ self.assertTrue(ptr2 != ptr1, (ptr2, ptr1))
2487
+
2488
+ for ptr in ptrs.values():
2489
+ # Compare the pointers against any non-pointer type.
2490
+ for other in self.assorted_types():
2491
+ if not isinstance(other, ir.PointerType):
2492
+ assert_ne(ptr, other)
2493
+ # Compare the pointers against themselves.
2494
+ assert_eq(ptr, ptr)
2495
+
2496
+ # Compare the pointers against each other.
2497
+ # Opaque pointers are always equal, unless their address space differs.
2498
+ # Typed pointers always differ, unless their pointee type and address
2499
+ # space match.
2500
+ assert_ne(ptrs['op_a0'], ptrs['op_a1'])
2501
+ assert_eq(ptrs['op_a0'], ptrs['tp_i1_a0'])
2502
+ assert_ne(ptrs['op_a0'], ptrs['tp_i1_a1'])
2503
+ assert_eq(ptrs['op_a0'], ptrs['tp_i8_a0'])
2504
+ assert_ne(ptrs['op_a0'], ptrs['tp_i8_a1'])
2505
+ assert_ne(ptrs['op_a1'], ptrs['tp_i1_a0'])
2506
+ assert_eq(ptrs['op_a1'], ptrs['tp_i1_a1'])
2507
+ assert_ne(ptrs['op_a1'], ptrs['tp_i8_a0'])
2508
+ assert_eq(ptrs['op_a1'], ptrs['tp_i8_a1'])
2509
+ assert_ne(ptrs['tp_i1_a0'], ptrs['tp_i1_a1'])
2510
+ assert_ne(ptrs['tp_i1_a0'], ptrs['tp_i8_a0'])
2511
+ assert_ne(ptrs['tp_i1_a0'], ptrs['tp_i8_a1'])
2512
+ assert_ne(ptrs['tp_i1_a1'], ptrs['tp_i8_a0'])
2513
+ assert_ne(ptrs['tp_i1_a1'], ptrs['tp_i8_a1'])
2514
+ assert_ne(ptrs['tp_i8_a0'], ptrs['tp_i8_a1'])
2515
+
2516
+ def test_ptr_intrinsic_name(self):
2517
+ self.assertEqual(ir.PointerType().intrinsic_name, 'p0')
2518
+ self.assertEqual(ir.PointerType(addrspace=1).intrinsic_name, 'p1')
2519
+ if not ir_layer_typed_pointers_enabled:
2520
+ self.assertEqual(ir.PointerType(int1).intrinsic_name, 'p0')
2521
+ self.assertEqual(ir.PointerType(int1, 1).intrinsic_name, 'p1')
2522
+ else:
2523
+ self.assertEqual(ir.PointerType(int1).intrinsic_name, 'p0i1')
2524
+ self.assertEqual(ir.PointerType(int1, 1).intrinsic_name, 'p1i1')
2525
+
2407
2526
  def test_str(self):
2408
2527
  """
2409
2528
  Test the string representation of types.
@@ -2423,8 +2542,7 @@ class TestTypes(TestBase):
2423
2542
  'i1 (float, ...)')
2424
2543
  self.assertEqual(str(ir.FunctionType(int1, (flt, dbl), var_arg=True)),
2425
2544
  'i1 (float, double, ...)')
2426
- # FIXME: Remove `else' once TP are no longer supported.
2427
- if opaque_pointers_enabled:
2545
+ if not ir_layer_typed_pointers_enabled:
2428
2546
  self.assertEqual(str(ir.PointerType(int32)), 'ptr')
2429
2547
  self.assertEqual(str(ir.PointerType(ir.PointerType(int32))), 'ptr')
2430
2548
  else:
@@ -2432,8 +2550,7 @@ class TestTypes(TestBase):
2432
2550
  self.assertEqual(str(ir.PointerType(ir.PointerType(int32))),
2433
2551
  'i32**')
2434
2552
  self.assertEqual(str(ir.ArrayType(int1, 5)), '[5 x i1]')
2435
- # FIXME: Remove `else' once TP are no longer supported.
2436
- if opaque_pointers_enabled:
2553
+ if not ir_layer_typed_pointers_enabled:
2437
2554
  self.assertEqual(str(ir.ArrayType(ir.PointerType(int1), 5)),
2438
2555
  '[5 x ptr]')
2439
2556
  self.assertEqual(str(ir.PointerType(ir.ArrayType(int1, 5))), 'ptr')
@@ -2444,8 +2561,7 @@ class TestTypes(TestBase):
2444
2561
  '[5 x i1]*')
2445
2562
  self.assertEqual(str(ir.LiteralStructType((int1,))), '{i1}')
2446
2563
  self.assertEqual(str(ir.LiteralStructType((int1, flt))), '{i1, float}')
2447
- # FIXME: Remove `else' once TP are no longer supported.
2448
- if opaque_pointers_enabled:
2564
+ if not ir_layer_typed_pointers_enabled:
2449
2565
  self.assertEqual(str(ir.LiteralStructType((
2450
2566
  ir.PointerType(int1), ir.LiteralStructType((int32, int8))))),
2451
2567
  '{ptr, {i32, i8}}')
@@ -2743,8 +2859,7 @@ class TestConstant(TestBase):
2743
2859
  tp = ir.LiteralStructType((flt, int1))
2744
2860
  gv = ir.GlobalVariable(m, tp, "myconstant")
2745
2861
  c = gv.gep([ir.Constant(int32, x) for x in (0, 1)])
2746
- # FIXME: Remove `else' once TP are no longer supported.
2747
- if opaque_pointers_enabled:
2862
+ if not ir_layer_typed_pointers_enabled:
2748
2863
  self.assertEqual(str(c),
2749
2864
  'getelementptr ({float, i1}, ptr @"myconstant", i32 0, i32 1)') # noqa E501
2750
2865
  else:
@@ -2758,8 +2873,7 @@ class TestConstant(TestBase):
2758
2873
 
2759
2874
  const_ptr = ir.Constant(tp.as_pointer(), None)
2760
2875
  c2 = const_ptr.gep([ir.Constant(int32, 0)])
2761
- # FIXME: Remove `else' once TP are no longer supported.
2762
- if opaque_pointers_enabled:
2876
+ if not ir_layer_typed_pointers_enabled:
2763
2877
  self.assertEqual(str(c2),
2764
2878
  'getelementptr ({float, i1}, ptr null, i32 0)') # noqa E501
2765
2879
  else:
@@ -2776,8 +2890,7 @@ class TestConstant(TestBase):
2776
2890
  self.assertEqual(gv.addrspace, addrspace)
2777
2891
  c = gv.gep([ir.Constant(int32, x) for x in (0, 1)])
2778
2892
  self.assertEqual(c.type.addrspace, addrspace)
2779
- # FIXME: Remove `else' once TP are no longer supported.
2780
- if opaque_pointers_enabled:
2893
+ if not ir_layer_typed_pointers_enabled:
2781
2894
  self.assertEqual(str(c),
2782
2895
  ('getelementptr ({float, i1}, ptr '
2783
2896
  'addrspace(4) @"myconstant", i32 0, i32 1)'))
@@ -2811,8 +2924,7 @@ class TestConstant(TestBase):
2811
2924
  m = self.module()
2812
2925
  gv = ir.GlobalVariable(m, int32, "myconstant")
2813
2926
  c = gv.bitcast(int64.as_pointer())
2814
- # FIXME: Remove `else' once TP are no longer supported.
2815
- if opaque_pointers_enabled:
2927
+ if not ir_layer_typed_pointers_enabled:
2816
2928
  self.assertEqual(str(c), 'bitcast (ptr @"myconstant" to ptr)')
2817
2929
  else:
2818
2930
  self.assertEqual(str(c), 'bitcast (i32* @"myconstant" to i64*)')
@@ -2840,8 +2952,7 @@ class TestConstant(TestBase):
2840
2952
 
2841
2953
  self.assertRaises(TypeError, one.ptrtoint, int64)
2842
2954
  self.assertRaises(TypeError, ptr.ptrtoint, flt)
2843
- # FIXME: Remove `else' once TP are no longer supported.
2844
- if opaque_pointers_enabled:
2955
+ if not ir_layer_typed_pointers_enabled:
2845
2956
  self.assertEqual(str(c), 'ptrtoint (ptr null to i32)')
2846
2957
  else:
2847
2958
  self.assertEqual(str(c), 'ptrtoint (i64* null to i32)')
@@ -2850,8 +2961,7 @@ class TestConstant(TestBase):
2850
2961
  m = self.module()
2851
2962
  gv = ir.GlobalVariable(m, int32, "myconstant")
2852
2963
  c = gv.ptrtoint(int64)
2853
- # FIXME: Remove `else' once TP are no longer supported.
2854
- if opaque_pointers_enabled:
2964
+ if not ir_layer_typed_pointers_enabled:
2855
2965
  self.assertEqual(str(c), 'ptrtoint (ptr @"myconstant" to i64)')
2856
2966
 
2857
2967
  self.assertRaisesRegex(
@@ -2882,8 +2992,7 @@ class TestConstant(TestBase):
2882
2992
 
2883
2993
  self.assertRaises(TypeError, one.inttoptr, int64)
2884
2994
  self.assertRaises(TypeError, pi.inttoptr, int64.as_pointer())
2885
- # FIXME: Remove `else' once TP are no longer supported.
2886
- if opaque_pointers_enabled:
2995
+ if not ir_layer_typed_pointers_enabled:
2887
2996
  self.assertEqual(str(c), 'inttoptr (i32 1 to ptr)')
2888
2997
  else:
2889
2998
  self.assertEqual(str(c), 'inttoptr (i32 1 to i64*)')