llvmlite 0.44.0rc2__cp312-cp312-win_amd64.whl → 0.45.0rc1__cp312-cp312-win_amd64.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,7 +1084,7 @@ 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)
1030
- if opaque_pointers_enabled:
1087
+ if not ir_layer_typed_pointers_enabled:
1031
1088
  ptr = ir.Constant(ir.PointerType(), None)
1032
1089
  else:
1033
1090
  ptr = ir.Constant(ir.PointerType(int32), None)
@@ -1041,8 +1098,7 @@ my_block:
1041
1098
  with self.assertRaises(TypeError) as cm:
1042
1099
  builder.store(b, e)
1043
1100
 
1044
- # FIXME: Remove `else' once TP are no longer supported.
1045
- if opaque_pointers_enabled:
1101
+ if not ir_layer_typed_pointers_enabled:
1046
1102
  self.assertEqual(str(cm.exception),
1047
1103
  "cannot store i32 to ptr: mismatching types")
1048
1104
  self.check_block(block, """\
@@ -1084,8 +1140,7 @@ my_block:
1084
1140
  c = builder.alloca(ir.PointerType(int32), name='c')
1085
1141
  d = builder.gep(c, [ir.Constant(int32, 5), a], name='d')
1086
1142
  self.assertEqual(d.type, ir.PointerType(int32))
1087
- # FIXME: Remove `else' once TP are no longer supported.
1088
- if opaque_pointers_enabled:
1143
+ if not ir_layer_typed_pointers_enabled:
1089
1144
  self.check_block(block, """\
1090
1145
  my_block:
1091
1146
  %"c" = alloca ptr
@@ -1110,8 +1165,7 @@ my_block:
1110
1165
  d = builder.bitcast(a, ls.as_pointer(), name='d')
1111
1166
  e = builder.gep(d, [ir.Constant(int32, x) for x in [0, 3]], name='e')
1112
1167
  self.assertEqual(e.type, ir.PointerType(int8ptr))
1113
- # FIXME: Remove `else' once TP are no longer supported.
1114
- if opaque_pointers_enabled:
1168
+ if not ir_layer_typed_pointers_enabled:
1115
1169
  self.check_block(block, """\
1116
1170
  my_block:
1117
1171
  %"d" = bitcast i32 %".1" to ptr
@@ -1137,8 +1191,7 @@ my_block:
1137
1191
  e = builder.gep(d, [ir.Constant(int32, x) for x in [0, 3]], name='e')
1138
1192
  self.assertEqual(e.type.addrspace, addrspace)
1139
1193
  self.assertEqual(e.type, ir.PointerType(int8ptr, addrspace=addrspace))
1140
- # FIXME: Remove `else' once TP are no longer supported.
1141
- if opaque_pointers_enabled:
1194
+ if not ir_layer_typed_pointers_enabled:
1142
1195
  self.check_block(block, """\
1143
1196
  my_block:
1144
1197
  %"d" = bitcast i32 %".1" to ptr addrspace(4)
@@ -1157,8 +1210,7 @@ my_block:
1157
1210
  a, b = builder.function.args[:2]
1158
1211
  addrspace = 4
1159
1212
  c = builder.alloca(ir.PointerType(int32, addrspace=addrspace), name='c')
1160
- # FIXME: Remove `else' once TP are no longer supported.
1161
- if opaque_pointers_enabled:
1213
+ if not ir_layer_typed_pointers_enabled:
1162
1214
  self.assertEqual(str(c.type), 'ptr')
1163
1215
  else:
1164
1216
  self.assertEqual(str(c.type), 'i32 addrspace(4)**')
@@ -1167,8 +1219,7 @@ my_block:
1167
1219
  self.assertEqual(d.type.addrspace, addrspace)
1168
1220
  e = builder.gep(d, [ir.Constant(int32, 10)], name='e')
1169
1221
  self.assertEqual(e.type.addrspace, addrspace)
1170
- # FIXME: Remove `else' once TP are no longer supported.
1171
- if opaque_pointers_enabled:
1222
+ if not ir_layer_typed_pointers_enabled:
1172
1223
  self.check_block(block, """\
1173
1224
  my_block:
1174
1225
  %"c" = alloca ptr addrspace(4)
@@ -1229,8 +1280,7 @@ my_block:
1229
1280
  # Replacement value has the wrong type
1230
1281
  builder.insert_value(c_inner, a, 1)
1231
1282
 
1232
- # FIXME: Remove `else' once TP are no longer supported.
1233
- if opaque_pointers_enabled:
1283
+ if not ir_layer_typed_pointers_enabled:
1234
1284
  self.check_block(block, """\
1235
1285
  my_block:
1236
1286
  %"c" = extractvalue {i32, i1} {i32 4, i1 true}, 0
@@ -1278,8 +1328,7 @@ my_block:
1278
1328
  j = builder.inttoptr(i, ir.PointerType(int8), 'j') # noqa F841
1279
1329
  k = builder.bitcast(a, flt, "k") # noqa F841
1280
1330
  self.assertFalse(block.is_terminated)
1281
- # FIXME: Remove `else' once TP are no longer supported.
1282
- if opaque_pointers_enabled:
1331
+ if not ir_layer_typed_pointers_enabled:
1283
1332
  self.check_block(block, """\
1284
1333
  my_block:
1285
1334
  %"c" = trunc i32 %".1" to i8
@@ -1319,8 +1368,7 @@ my_block:
1319
1368
  c = builder.alloca(int32, name='c')
1320
1369
  d = builder.atomic_rmw('add', c, a, 'monotonic', 'd')
1321
1370
  self.assertEqual(d.type, int32)
1322
- # FIXME: Remove `else' once TP are no longer supported.
1323
- if opaque_pointers_enabled:
1371
+ if not ir_layer_typed_pointers_enabled:
1324
1372
  self.check_block(block, """\
1325
1373
  my_block:
1326
1374
  %"c" = alloca i32
@@ -1382,8 +1430,7 @@ my_block:
1382
1430
  indirectbr.add_destination(bb_1)
1383
1431
  indirectbr.add_destination(bb_2)
1384
1432
  self.assertTrue(block.is_terminated)
1385
- # FIXME: Remove `else' once TP are no longer supported.
1386
- if opaque_pointers_enabled:
1433
+ if not ir_layer_typed_pointers_enabled:
1387
1434
  self.check_block(block, """\
1388
1435
  my_block:
1389
1436
  indirectbr ptr blockaddress(@"my_func", %"b_1"), [label %"b_1", label %"b_2"]
@@ -1505,8 +1552,7 @@ my_block:
1505
1552
  a = builder.alloca(int32, name="a")
1506
1553
  b = builder.module.add_metadata(())
1507
1554
  builder.call(dbg_declare, (a, b, b))
1508
- # FIXME: Remove `else' once TP are no longer supported.
1509
- if opaque_pointers_enabled:
1555
+ if not ir_layer_typed_pointers_enabled:
1510
1556
  self.check_block(block, """\
1511
1557
  my_block:
1512
1558
  %"a" = alloca i32
@@ -1536,8 +1582,7 @@ my_block:
1536
1582
  2: 'noalias'
1537
1583
  }
1538
1584
  )
1539
- # FIXME: Remove `else' once TP are no longer supported.
1540
- if opaque_pointers_enabled:
1585
+ if not ir_layer_typed_pointers_enabled:
1541
1586
  self.check_block_regex(block, """\
1542
1587
  my_block:
1543
1588
  %"retval" = alloca i32
@@ -1628,8 +1673,7 @@ my_block:
1628
1673
  2: 'noalias'
1629
1674
  }
1630
1675
  )
1631
- # FIXME: Remove `else' once TP are no longer supported.
1632
- if opaque_pointers_enabled:
1676
+ if not ir_layer_typed_pointers_enabled:
1633
1677
  self.check_block_regex(block, """\
1634
1678
  my_block:
1635
1679
  %"retval" = alloca i32
@@ -1658,8 +1702,7 @@ my_block:
1658
1702
  lp.add_clause(ir.FilterClause(ir.Constant(ir.ArrayType(
1659
1703
  int_typeinfo.type, 1), [int_typeinfo])))
1660
1704
  builder.resume(lp)
1661
- # FIXME: Remove `else' once TP are no longer supported.
1662
- if opaque_pointers_enabled:
1705
+ if not ir_layer_typed_pointers_enabled:
1663
1706
  self.check_block(block, """\
1664
1707
  my_block:
1665
1708
  %"lp" = landingpad {i32, ptr}
@@ -2346,8 +2389,7 @@ class TestBuilderMisc(TestBase):
2346
2389
  builder = ir.IRBuilder(block)
2347
2390
  builder.debug_metadata = builder.module.add_metadata([])
2348
2391
  builder.alloca(ir.PointerType(int32), name='c')
2349
- # FIXME: Remove `else' once TP are no longer supported.
2350
- if opaque_pointers_enabled:
2392
+ if not ir_layer_typed_pointers_enabled:
2351
2393
  self.check_block(block, """\
2352
2394
  my_block:
2353
2395
  %"c" = alloca ptr, !dbg !0
@@ -2412,6 +2454,75 @@ class TestTypes(TestBase):
2412
2454
  self.assertFalse(tp == other, (tp, other))
2413
2455
  self.assertTrue(tp != other, (tp, other))
2414
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
+
2415
2526
  def test_str(self):
2416
2527
  """
2417
2528
  Test the string representation of types.
@@ -2431,8 +2542,7 @@ class TestTypes(TestBase):
2431
2542
  'i1 (float, ...)')
2432
2543
  self.assertEqual(str(ir.FunctionType(int1, (flt, dbl), var_arg=True)),
2433
2544
  'i1 (float, double, ...)')
2434
- # FIXME: Remove `else' once TP are no longer supported.
2435
- if opaque_pointers_enabled:
2545
+ if not ir_layer_typed_pointers_enabled:
2436
2546
  self.assertEqual(str(ir.PointerType(int32)), 'ptr')
2437
2547
  self.assertEqual(str(ir.PointerType(ir.PointerType(int32))), 'ptr')
2438
2548
  else:
@@ -2440,8 +2550,7 @@ class TestTypes(TestBase):
2440
2550
  self.assertEqual(str(ir.PointerType(ir.PointerType(int32))),
2441
2551
  'i32**')
2442
2552
  self.assertEqual(str(ir.ArrayType(int1, 5)), '[5 x i1]')
2443
- # FIXME: Remove `else' once TP are no longer supported.
2444
- if opaque_pointers_enabled:
2553
+ if not ir_layer_typed_pointers_enabled:
2445
2554
  self.assertEqual(str(ir.ArrayType(ir.PointerType(int1), 5)),
2446
2555
  '[5 x ptr]')
2447
2556
  self.assertEqual(str(ir.PointerType(ir.ArrayType(int1, 5))), 'ptr')
@@ -2452,8 +2561,7 @@ class TestTypes(TestBase):
2452
2561
  '[5 x i1]*')
2453
2562
  self.assertEqual(str(ir.LiteralStructType((int1,))), '{i1}')
2454
2563
  self.assertEqual(str(ir.LiteralStructType((int1, flt))), '{i1, float}')
2455
- # FIXME: Remove `else' once TP are no longer supported.
2456
- if opaque_pointers_enabled:
2564
+ if not ir_layer_typed_pointers_enabled:
2457
2565
  self.assertEqual(str(ir.LiteralStructType((
2458
2566
  ir.PointerType(int1), ir.LiteralStructType((int32, int8))))),
2459
2567
  '{ptr, {i32, i8}}')
@@ -2751,8 +2859,7 @@ class TestConstant(TestBase):
2751
2859
  tp = ir.LiteralStructType((flt, int1))
2752
2860
  gv = ir.GlobalVariable(m, tp, "myconstant")
2753
2861
  c = gv.gep([ir.Constant(int32, x) for x in (0, 1)])
2754
- # FIXME: Remove `else' once TP are no longer supported.
2755
- if opaque_pointers_enabled:
2862
+ if not ir_layer_typed_pointers_enabled:
2756
2863
  self.assertEqual(str(c),
2757
2864
  'getelementptr ({float, i1}, ptr @"myconstant", i32 0, i32 1)') # noqa E501
2758
2865
  else:
@@ -2766,8 +2873,7 @@ class TestConstant(TestBase):
2766
2873
 
2767
2874
  const_ptr = ir.Constant(tp.as_pointer(), None)
2768
2875
  c2 = const_ptr.gep([ir.Constant(int32, 0)])
2769
- # FIXME: Remove `else' once TP are no longer supported.
2770
- if opaque_pointers_enabled:
2876
+ if not ir_layer_typed_pointers_enabled:
2771
2877
  self.assertEqual(str(c2),
2772
2878
  'getelementptr ({float, i1}, ptr null, i32 0)') # noqa E501
2773
2879
  else:
@@ -2784,8 +2890,7 @@ class TestConstant(TestBase):
2784
2890
  self.assertEqual(gv.addrspace, addrspace)
2785
2891
  c = gv.gep([ir.Constant(int32, x) for x in (0, 1)])
2786
2892
  self.assertEqual(c.type.addrspace, addrspace)
2787
- # FIXME: Remove `else' once TP are no longer supported.
2788
- if opaque_pointers_enabled:
2893
+ if not ir_layer_typed_pointers_enabled:
2789
2894
  self.assertEqual(str(c),
2790
2895
  ('getelementptr ({float, i1}, ptr '
2791
2896
  'addrspace(4) @"myconstant", i32 0, i32 1)'))
@@ -2819,8 +2924,7 @@ class TestConstant(TestBase):
2819
2924
  m = self.module()
2820
2925
  gv = ir.GlobalVariable(m, int32, "myconstant")
2821
2926
  c = gv.bitcast(int64.as_pointer())
2822
- # FIXME: Remove `else' once TP are no longer supported.
2823
- if opaque_pointers_enabled:
2927
+ if not ir_layer_typed_pointers_enabled:
2824
2928
  self.assertEqual(str(c), 'bitcast (ptr @"myconstant" to ptr)')
2825
2929
  else:
2826
2930
  self.assertEqual(str(c), 'bitcast (i32* @"myconstant" to i64*)')
@@ -2848,8 +2952,7 @@ class TestConstant(TestBase):
2848
2952
 
2849
2953
  self.assertRaises(TypeError, one.ptrtoint, int64)
2850
2954
  self.assertRaises(TypeError, ptr.ptrtoint, flt)
2851
- # FIXME: Remove `else' once TP are no longer supported.
2852
- if opaque_pointers_enabled:
2955
+ if not ir_layer_typed_pointers_enabled:
2853
2956
  self.assertEqual(str(c), 'ptrtoint (ptr null to i32)')
2854
2957
  else:
2855
2958
  self.assertEqual(str(c), 'ptrtoint (i64* null to i32)')
@@ -2858,8 +2961,7 @@ class TestConstant(TestBase):
2858
2961
  m = self.module()
2859
2962
  gv = ir.GlobalVariable(m, int32, "myconstant")
2860
2963
  c = gv.ptrtoint(int64)
2861
- # FIXME: Remove `else' once TP are no longer supported.
2862
- if opaque_pointers_enabled:
2964
+ if not ir_layer_typed_pointers_enabled:
2863
2965
  self.assertEqual(str(c), 'ptrtoint (ptr @"myconstant" to i64)')
2864
2966
 
2865
2967
  self.assertRaisesRegex(
@@ -2890,8 +2992,7 @@ class TestConstant(TestBase):
2890
2992
 
2891
2993
  self.assertRaises(TypeError, one.inttoptr, int64)
2892
2994
  self.assertRaises(TypeError, pi.inttoptr, int64.as_pointer())
2893
- # FIXME: Remove `else' once TP are no longer supported.
2894
- if opaque_pointers_enabled:
2995
+ if not ir_layer_typed_pointers_enabled:
2895
2996
  self.assertEqual(str(c), 'inttoptr (i32 1 to ptr)')
2896
2997
  else:
2897
2998
  self.assertEqual(str(c), 'inttoptr (i32 1 to i64*)')