فهرست منبع

Python compat - print statement

Make sure all print statements are compatible with Python 2 and Python3 using
the `from __future__ import print_function` statement.

Differential Revision: https://reviews.llvm.org/D56249

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350307 91177308-0d34-0410-b5e6-96231b3b80d8
Serge Guelton 6 سال پیش
والد
کامیت
60ccceba74
56فایلهای تغییر یافته به همراه592 افزوده شده و 487 حذف شده
  1. 2 1
      bindings/python/llvm/core.py
  2. 4 2
      bindings/python/llvm/tests/test_bitreader.py
  3. 3 1
      bindings/python/llvm/tests/test_core.py
  4. 3 1
      bindings/python/llvm/tests/test_disassembler.py
  5. 5 4
      docs/conf.py
  6. 5 3
      examples/Kaleidoscope/MCJIT/cached/genk-timing.py
  7. 4 2
      examples/Kaleidoscope/MCJIT/cached/split-lib.py
  8. 5 3
      examples/Kaleidoscope/MCJIT/complete/genk-timing.py
  9. 4 2
      examples/Kaleidoscope/MCJIT/complete/split-lib.py
  10. 5 3
      examples/Kaleidoscope/MCJIT/lazy/genk-timing.py
  11. 2 0
      test/BugPoint/compile-custom.ll.py
  12. 2 0
      test/CodeGen/NVPTX/ld-st-addrrspace.py
  13. 2 0
      test/CodeGen/NVPTX/wmma.py
  14. 25 23
      test/CodeGen/SystemZ/Large/branch-range-01.py
  15. 16 14
      test/CodeGen/SystemZ/Large/branch-range-02.py
  16. 27 25
      test/CodeGen/SystemZ/Large/branch-range-03.py
  17. 27 25
      test/CodeGen/SystemZ/Large/branch-range-04.py
  18. 25 23
      test/CodeGen/SystemZ/Large/branch-range-05.py
  19. 25 23
      test/CodeGen/SystemZ/Large/branch-range-06.py
  20. 19 17
      test/CodeGen/SystemZ/Large/branch-range-07.py
  21. 19 17
      test/CodeGen/SystemZ/Large/branch-range-08.py
  22. 27 25
      test/CodeGen/SystemZ/Large/branch-range-09.py
  23. 27 25
      test/CodeGen/SystemZ/Large/branch-range-10.py
  24. 27 25
      test/CodeGen/SystemZ/Large/branch-range-11.py
  25. 27 25
      test/CodeGen/SystemZ/Large/branch-range-12.py
  26. 15 12
      test/CodeGen/SystemZ/Large/spill-01.py
  27. 31 28
      test/CodeGen/SystemZ/Large/spill-02.py
  28. 2 0
      test/MC/COFF/bigobj.py
  29. 2 0
      test/Other/opt-bisect-helper.py
  30. 2 0
      test/tools/llvm-readobj/Inputs/relocs.py
  31. 2 0
      tools/sancov/coverage-report-server.py
  32. 4 1
      utils/DSAclean.py
  33. 5 3
      utils/DSAextract.py
  34. 2 0
      utils/Reviewing/find_interesting_reviews.py
  35. 6 4
      utils/Target/ARM/analyze-match-table.py
  36. 14 12
      utils/create_ladder_graph.py
  37. 2 0
      utils/demangle_tree.py
  38. 2 0
      utils/extract_vplan.py
  39. 2 0
      utils/gdb-scripts/prettyprinters.py
  40. 4 2
      utils/indirect_calls.py
  41. 2 1
      utils/lint/common_lint.py
  42. 2 1
      utils/lint/cpp_lint.py
  43. 2 0
      utils/lit/lit/util.py
  44. 2 1
      utils/lit/tests/Inputs/shtest-env/print_environment.py
  45. 2 0
      utils/lit/tests/Inputs/shtest-shell/check_path.py
  46. 3 3
      utils/llvm-build/llvmbuild/componentinfo.py
  47. 3 2
      utils/llvm-gisel-cov.py
  48. 20 18
      utils/release/findRegressions-nightly.py
  49. 21 19
      utils/release/findRegressions-simple.py
  50. 30 28
      utils/shuffle_fuzz.py
  51. 9 8
      utils/shuffle_select_fuzz_tester.py
  52. 21 19
      utils/unicode-case-fold.py
  53. 12 10
      utils/update_analyze_test_checks.py
  54. 12 10
      utils/update_llc_test_checks.py
  55. 12 10
      utils/update_test_checks.py
  56. 7 6
      utils/wciia.py

+ 2 - 1
bindings/python/llvm/core.py

@@ -6,6 +6,7 @@
 # License. See LICENSE.TXT for details.
 # License. See LICENSE.TXT for details.
 #
 #
 #===------------------------------------------------------------------------===#
 #===------------------------------------------------------------------------===#
+from __future__ import print_function
 
 
 from .common import LLVMObject
 from .common import LLVMObject
 from .common import c_object_p
 from .common import c_object_p
@@ -605,7 +606,7 @@ def register_enumerations():
     ]
     ]
     for enum_class, enum_spec in enums:
     for enum_class, enum_spec in enums:
         for name, value in enum_spec:
         for name, value in enum_spec:
-            print name, value
+            print(name, value)
             enum_class.register(name, value)
             enum_class.register(name, value)
     return enums
     return enums
 
 

+ 4 - 2
bindings/python/llvm/tests/test_bitreader.py

@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 from .base import TestBase
 from .base import TestBase
 from ..core import OpCode
 from ..core import OpCode
 from ..core import MemoryBuffer
 from ..core import MemoryBuffer
@@ -11,5 +13,5 @@ class TestBitReader(TestBase):
     def test_parse_bitcode(self):
     def test_parse_bitcode(self):
         source = self.get_test_bc()
         source = self.get_test_bc()
         m = parse_bitcode(MemoryBuffer(filename=source))
         m = parse_bitcode(MemoryBuffer(filename=source))
-        print m.target
-        print m.datalayout
+        print(m.target)
+        print(m.datalayout)

+ 3 - 1
bindings/python/llvm/tests/test_core.py

@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 from .base import TestBase
 from .base import TestBase
 from ..core import MemoryBuffer
 from ..core import MemoryBuffer
 from ..core import PassRegistry
 from ..core import PassRegistry
@@ -127,7 +129,7 @@ class TestCore(TestBase):
             self.assertEqual(inst.opcode, inst_list[i][1])
             self.assertEqual(inst.opcode, inst_list[i][1])
             for op in range(len(inst)):
             for op in range(len(inst)):
                 o = inst.get_operand(op)
                 o = inst.get_operand(op)
-                print o.name
+                print(o.name)
                 o.dump()
                 o.dump()
             inst.dump()
             inst.dump()
             i += 1
             i += 1

+ 3 - 1
bindings/python/llvm/tests/test_disassembler.py

@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 from .base import TestBase
 from .base import TestBase
 
 
 from ..disassembler import Disassembler, Option_UseMarkup
 from ..disassembler import Disassembler, Option_UseMarkup
@@ -38,6 +40,6 @@ class TestDisassembler(TestBase):
         disassembler = Disassembler(triple)
         disassembler = Disassembler(triple)
         disassembler.set_options(Option_UseMarkup)
         disassembler.set_options(Option_UseMarkup)
         count, s = disassembler.get_instruction(sequence)
         count, s = disassembler.get_instruction(sequence)
-        print s
+        print(s)
         self.assertEqual(count, 4)
         self.assertEqual(count, 4)
         self.assertEqual(s, '\tpush\t{<reg:r4>, <reg:lr>}')
         self.assertEqual(s, '\tpush\t{<reg:r4>, <reg:lr>}')

+ 5 - 4
docs/conf.py

@@ -9,6 +9,7 @@
 #
 #
 # All configuration values have a default; values that are commented out
 # All configuration values have a default; values that are commented out
 # serve to show the default.
 # serve to show the default.
+from __future__ import print_function
 
 
 import sys, os
 import sys, os
 from datetime import date
 from datetime import date
@@ -234,14 +235,14 @@ for name in os.listdir(command_guide_path):
         header = f.readline().rstrip('\n')
         header = f.readline().rstrip('\n')
 
 
         if len(header) != len(title):
         if len(header) != len(title):
-            print >>sys.stderr, (
+            print((
                 "error: invalid header in %r (does not match title)" % (
                 "error: invalid header in %r (does not match title)" % (
-                    file_subpath,))
+                    file_subpath,)), file=sys.stderr)
         if ' - ' not in title:
         if ' - ' not in title:
-            print >>sys.stderr, (
+            print((
                 ("error: invalid title in %r "
                 ("error: invalid title in %r "
                  "(expected '<name> - <description>')") % (
                  "(expected '<name> - <description>')") % (
-                    file_subpath,))
+                    file_subpath,)), file=sys.stderr)
 
 
         # Split the name out of the title.
         # Split the name out of the title.
         name,description = title.split(' - ', 1)
         name,description = title.split(' - ', 1)

+ 5 - 3
examples/Kaleidoscope/MCJIT/cached/genk-timing.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import sys
 import sys
 import random
 import random
 
 
@@ -173,7 +175,7 @@ class KScriptGenerator:
 
 
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
     """ Generate a random Kaleidoscope script based on the given parameters """
     """ Generate a random Kaleidoscope script based on the given parameters """
-    print "Generating " + filename
+    print("Generating " + filename)
     print("  %d functions, %d elements per function, %d functions between execution" %
     print("  %d functions, %d elements per function, %d functions between execution" %
           (numFuncs, elementsPerFunc, funcsBetweenExec))
           (numFuncs, elementsPerFunc, funcsBetweenExec))
     print("  Call weighting = %f" % callWeighting)
     print("  Call weighting = %f" % callWeighting)
@@ -200,7 +202,7 @@ def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callW
     script.writeEmptyLine()
     script.writeEmptyLine()
     script.writeFinalFunctionCounts()
     script.writeFinalFunctionCounts()
     funcsCalled = len(script.calledFunctions)
     funcsCalled = len(script.calledFunctions)
-    print "  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted)
+    print("  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted))
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
 
 
 # Execution begins here
 # Execution begins here
@@ -216,4 +218,4 @@ dataSets = [(5000, 3,  50, 0.50), (5000, 10, 100, 0.10), (5000, 10, 5, 0.10), (5
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
-print "All done!"
+print("All done!")

+ 4 - 2
examples/Kaleidoscope/MCJIT/cached/split-lib.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 class TimingScriptGenerator:
 class TimingScriptGenerator:
     """Used to generate a bash script which will invoke the toy and time it"""
     """Used to generate a bash script which will invoke the toy and time it"""
     def __init__(self, scriptname, outputname):
     def __init__(self, scriptname, outputname):
@@ -47,7 +49,7 @@ def splitScript(inputname, libGenScript, timingScript):
   infile = open(inputname, "r")
   infile = open(inputname, "r")
   libfile = open(libname, "w")
   libfile = open(libname, "w")
   callfile = open(callname, "w")
   callfile = open(callname, "w")
-  print "Splitting %s into %s and %s" % (inputname, callname, libname)
+  print("Splitting %s into %s and %s" % (inputname, callname, libname))
   for line in infile:
   for line in infile:
     if not line.startswith("#"):
     if not line.startswith("#"):
       if line.startswith("print"):
       if line.startswith("print"):
@@ -67,4 +69,4 @@ script_list = ["test-5000-3-50-50.k", "test-5000-10-100-10.k", "test-5000-10-5-1
 
 
 for script in script_list:
 for script in script_list:
   splitScript(script, libGenScript, timingScript)
   splitScript(script, libGenScript, timingScript)
-print "All done!"
+print("All done!")

+ 5 - 3
examples/Kaleidoscope/MCJIT/complete/genk-timing.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import sys
 import sys
 import random
 import random
 
 
@@ -178,7 +180,7 @@ class KScriptGenerator:
 
 
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
     """ Generate a random Kaleidoscope script based on the given parameters """
     """ Generate a random Kaleidoscope script based on the given parameters """
-    print "Generating " + filename
+    print("Generating " + filename)
     print("  %d functions, %d elements per function, %d functions between execution" %
     print("  %d functions, %d elements per function, %d functions between execution" %
           (numFuncs, elementsPerFunc, funcsBetweenExec))
           (numFuncs, elementsPerFunc, funcsBetweenExec))
     print("  Call weighting = %f" % callWeighting)
     print("  Call weighting = %f" % callWeighting)
@@ -205,7 +207,7 @@ def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callW
     script.writeEmptyLine()
     script.writeEmptyLine()
     script.writeFinalFunctionCounts()
     script.writeFinalFunctionCounts()
     funcsCalled = len(script.calledFunctions)
     funcsCalled = len(script.calledFunctions)
-    print "  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted)
+    print("  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted))
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
 
 
 # Execution begins here
 # Execution begins here
@@ -221,4 +223,4 @@ dataSets = [(5000, 3,  50, 0.50), (5000, 10, 100, 0.10), (5000, 10, 5, 0.10), (5
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
-print "All done!"
+print("All done!")

+ 4 - 2
examples/Kaleidoscope/MCJIT/complete/split-lib.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 class TimingScriptGenerator:
 class TimingScriptGenerator:
     """Used to generate a bash script which will invoke the toy and time it"""
     """Used to generate a bash script which will invoke the toy and time it"""
     def __init__(self, scriptname, outputname):
     def __init__(self, scriptname, outputname):
@@ -47,7 +49,7 @@ def splitScript(inputname, libGenScript, timingScript):
   infile = open(inputname, "r")
   infile = open(inputname, "r")
   libfile = open(libname, "w")
   libfile = open(libname, "w")
   callfile = open(callname, "w")
   callfile = open(callname, "w")
-  print "Splitting %s into %s and %s" % (inputname, callname, libname)
+  print("Splitting %s into %s and %s" % (inputname, callname, libname))
   for line in infile:
   for line in infile:
     if not line.startswith("#"):
     if not line.startswith("#"):
       if line.startswith("print"):
       if line.startswith("print"):
@@ -67,4 +69,4 @@ script_list = ["test-5000-3-50-50.k", "test-5000-10-100-10.k", "test-5000-10-5-1
 
 
 for script in script_list:
 for script in script_list:
   splitScript(script, libGenScript, timingScript)
   splitScript(script, libGenScript, timingScript)
-print "All done!"
+print("All done!")

+ 5 - 3
examples/Kaleidoscope/MCJIT/lazy/genk-timing.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import sys
 import sys
 import random
 import random
 
 
@@ -173,7 +175,7 @@ class KScriptGenerator:
 
 
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
 def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript):
     """ Generate a random Kaleidoscope script based on the given parameters """
     """ Generate a random Kaleidoscope script based on the given parameters """
-    print "Generating " + filename
+    print("Generating " + filename)
     print("  %d functions, %d elements per function, %d functions between execution" %
     print("  %d functions, %d elements per function, %d functions between execution" %
           (numFuncs, elementsPerFunc, funcsBetweenExec))
           (numFuncs, elementsPerFunc, funcsBetweenExec))
     print("  Call weighting = %f" % callWeighting)
     print("  Call weighting = %f" % callWeighting)
@@ -200,7 +202,7 @@ def generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callW
     script.writeEmptyLine()
     script.writeEmptyLine()
     script.writeFinalFunctionCounts()
     script.writeFinalFunctionCounts()
     funcsCalled = len(script.calledFunctions)
     funcsCalled = len(script.calledFunctions)
-    print "  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted)
+    print("  Called %d of %d functions, %d total" % (funcsCalled, numFuncs, script.totalCallsExecuted))
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
     timingScript.writeTimingCall(filename, numFuncs, funcsCalled, script.totalCallsExecuted)
 
 
 # Execution begins here
 # Execution begins here
@@ -216,4 +218,4 @@ dataSets = [(5000, 3,  50, 0.50), (5000, 10, 100, 0.10), (5000, 10, 5, 0.10), (5
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
 for (numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting) in dataSets:
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     filename = "test-%d-%d-%d-%d.k" % (numFuncs, elementsPerFunc, funcsBetweenExec, int(callWeighting * 100))
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
     generateKScript(filename, numFuncs, elementsPerFunc, funcsBetweenExec, callWeighting, timingScript)
-print "All done!"
+print("All done!")

+ 2 - 0
test/BugPoint/compile-custom.ll.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import sys
 import sys
 
 
 # Currently any print-out from the custom tool is interpreted as a crash
 # Currently any print-out from the custom tool is interpreted as a crash

+ 2 - 0
test/CodeGen/NVPTX/ld-st-addrrspace.py

@@ -5,6 +5,8 @@
 # RUN: llc < %t.ll -march=nvptx64 -mcpu=sm_30 | FileCheck -check-prefixes=CHECK,CHECK_P64 %t.ll
 # RUN: llc < %t.ll -march=nvptx64 -mcpu=sm_30 | FileCheck -check-prefixes=CHECK,CHECK_P64 %t.ll
 # RUN: llc < %t.ll -march=nvptx -mcpu=sm_30 | FileCheck -check-prefixes=CHECK,CHECK_P32 %t.ll
 # RUN: llc < %t.ll -march=nvptx -mcpu=sm_30 | FileCheck -check-prefixes=CHECK,CHECK_P32 %t.ll
 
 
+from __future__ import print_function
+
 from itertools import product
 from itertools import product
 from string import Template
 from string import Template
 
 

+ 2 - 0
test/CodeGen/NVPTX/wmma.py

@@ -4,6 +4,8 @@
 # RUN: python %s > %t.ll
 # RUN: python %s > %t.ll
 # RUN: llc < %t.ll -march=nvptx64 -mcpu=sm_70 -mattr=+ptx61 | FileCheck %t.ll
 # RUN: llc < %t.ll -march=nvptx64 -mcpu=sm_70 -mattr=+ptx61 | FileCheck %t.ll
 
 
+from __future__ import print_function
+
 from itertools import product
 from itertools import product
 from string import Template
 from string import Template
 
 

+ 25 - 23
test/CodeGen/SystemZ/Large/branch-range-01.py

@@ -67,42 +67,44 @@
 # CHECK: c %r4, 136(%r3)
 # CHECK: c %r4, 136(%r3)
 # CHECK: jge [[LABEL]]
 # CHECK: jge [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 10
 branch_blocks = 10
 main_size = 0xffd8
 main_size = 0xffd8
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i32 *%stop, i32 %limit) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i32 *%stop, i32 %limit) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bstop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i)
-    print '  %%bcur%d = load i32 , i32 *%%bstop%d' % (i, i)
-    print '  %%btest%d = icmp eq i32 %%limit, %%bcur%d' % (i, i)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bstop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i))
+    print('  %%bcur%d = load i32 , i32 *%%bstop%d' % (i, i))
+    print('  %%btest%d = icmp eq i32 %%limit, %%bcur%d' % (i, i))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%astop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i + 25)
-    print '  %%acur%d = load i32 , i32 *%%astop%d' % (i, i)
-    print '  %%atest%d = icmp eq i32 %%limit, %%acur%d' % (i, i)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%astop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i + 25))
+    print('  %%acur%d = load i32 , i32 *%%astop%d' % (i, i))
+    print('  %%atest%d = icmp eq i32 %%limit, %%acur%d' % (i, i))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 16 - 14
test/CodeGen/SystemZ/Large/branch-range-02.py

@@ -56,12 +56,14 @@
 # CHECK: c %r4, 1036(%r3)
 # CHECK: c %r4, 1036(%r3)
 # CHECK: jge [[LABEL]]
 # CHECK: jge [[LABEL]]
 
 
+from __future__ import print_function
+
 blocks = 256 + 4
 blocks = 256 + 4
 
 
-print 'define void @f1(i8 *%base, i32 *%stop, i32 %limit) {'
-print 'entry:'
-print '  br label %b0'
-print ''
+print('define void @f1(i8 *%base, i32 *%stop, i32 %limit) {')
+print('entry:')
+print('  br label %b0')
+print('')
 
 
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(blocks):
 for i in xrange(blocks):
@@ -69,14 +71,14 @@ for i in xrange(blocks):
     value = a % 256
     value = a % 256
     next = 'b%d' % (i + 1) if i + 1 < blocks else 'end'
     next = 'b%d' % (i + 1) if i + 1 < blocks else 'end'
     other = 'end' if 2 * i < blocks else 'b0'
     other = 'end' if 2 * i < blocks else 'b0'
-    print 'b%d:' % i
-    print '  store volatile i8 %d, i8 *%%base' % value
-    print '  %%astop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i)
-    print '  %%acur%d = load i32 , i32 *%%astop%d' % (i, i)
-    print '  %%atest%d = icmp eq i32 %%limit, %%acur%d' % (i, i)
-    print '  br i1 %%atest%d, label %%%s, label %%%s' % (i, other, next)
+    print('b%d:' % i)
+    print('  store volatile i8 %d, i8 *%%base' % value)
+    print('  %%astop%d = getelementptr i32, i32 *%%stop, i64 %d' % (i, i))
+    print('  %%acur%d = load i32 , i32 *%%astop%d' % (i, i))
+    print('  %%atest%d = icmp eq i32 %%limit, %%acur%d' % (i, i))
+    print('  br i1 %%atest%d, label %%%s, label %%%s' % (i, other, next))
 
 
-print ''
-print '%s:' % next
-print '  ret void'
-print '}'
+print('')
+print('%s:' % next)
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-03.py

@@ -67,44 +67,46 @@
 # CHECK: cr %r4, [[REG]]
 # CHECK: cr %r4, [[REG]]
 # CHECK: jge [[LABEL]]
 # CHECK: jge [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop, i32 %limit) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop, i32 %limit) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i)
-    print '  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i)
-    print '  %%bext%d = sext i8 %%bcur%d to i32' % (i, i)
-    print '  %%btest%d = icmp eq i32 %%limit, %%bext%d' % (i, i)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i))
+    print('  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i))
+    print('  %%bext%d = sext i8 %%bcur%d to i32' % (i, i))
+    print('  %%btest%d = icmp eq i32 %%limit, %%bext%d' % (i, i))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25)
-    print '  %%acur%d = load i8 , i8 *%%astop%d' % (i, i)
-    print '  %%aext%d = sext i8 %%acur%d to i32' % (i, i)
-    print '  %%atest%d = icmp eq i32 %%limit, %%aext%d' % (i, i)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25))
+    print('  %%acur%d = load i8 , i8 *%%astop%d' % (i, i))
+    print('  %%aext%d = sext i8 %%acur%d to i32' % (i, i))
+    print('  %%atest%d = icmp eq i32 %%limit, %%aext%d' % (i, i))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-04.py

@@ -71,44 +71,46 @@
 # CHECK: cgr %r4, [[REG]]
 # CHECK: cgr %r4, [[REG]]
 # CHECK: jge [[LABEL]]
 # CHECK: jge [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop, i64 %limit) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop, i64 %limit) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i)
-    print '  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i)
-    print '  %%bext%d = sext i8 %%bcur%d to i64' % (i, i)
-    print '  %%btest%d = icmp eq i64 %%limit, %%bext%d' % (i, i)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i))
+    print('  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i))
+    print('  %%bext%d = sext i8 %%bcur%d to i64' % (i, i))
+    print('  %%btest%d = icmp eq i64 %%limit, %%bext%d' % (i, i))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25)
-    print '  %%acur%d = load i8 , i8 *%%astop%d' % (i, i)
-    print '  %%aext%d = sext i8 %%acur%d to i64' % (i, i)
-    print '  %%atest%d = icmp eq i64 %%limit, %%aext%d' % (i, i)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25))
+    print('  %%acur%d = load i8 , i8 *%%astop%d' % (i, i))
+    print('  %%aext%d = sext i8 %%acur%d to i64' % (i, i))
+    print('  %%atest%d = icmp eq i64 %%limit, %%aext%d' % (i, i))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 25 - 23
test/CodeGen/SystemZ/Large/branch-range-05.py

@@ -71,42 +71,44 @@
 # CHECK: chi [[REG]], 107
 # CHECK: chi [[REG]], 107
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bcur%d = load i8 , i8 *%%stop' % i
-    print '  %%bext%d = sext i8 %%bcur%d to i32' % (i, i)
-    print '  %%btest%d = icmp slt i32 %%bext%d, %d' % (i, i, i + 50)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bcur%d = load i8 , i8 *%%stop' % i)
+    print('  %%bext%d = sext i8 %%bcur%d to i32' % (i, i))
+    print('  %%btest%d = icmp slt i32 %%bext%d, %d' % (i, i, i + 50))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%acur%d = load i8 , i8 *%%stop' % i
-    print '  %%aext%d = sext i8 %%acur%d to i32' % (i, i)
-    print '  %%atest%d = icmp slt i32 %%aext%d, %d' % (i, i, i + 100)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%acur%d = load i8 , i8 *%%stop' % i)
+    print('  %%aext%d = sext i8 %%acur%d to i32' % (i, i))
+    print('  %%atest%d = icmp slt i32 %%aext%d, %d' % (i, i, i + 100))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 25 - 23
test/CodeGen/SystemZ/Large/branch-range-06.py

@@ -71,42 +71,44 @@
 # CHECK: cghi [[REG]], 107
 # CHECK: cghi [[REG]], 107
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bcur%d = load i8 , i8 *%%stop' % i
-    print '  %%bext%d = sext i8 %%bcur%d to i64' % (i, i)
-    print '  %%btest%d = icmp slt i64 %%bext%d, %d' % (i, i, i + 50)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bcur%d = load i8 , i8 *%%stop' % i)
+    print('  %%bext%d = sext i8 %%bcur%d to i64' % (i, i))
+    print('  %%btest%d = icmp slt i64 %%bext%d, %d' % (i, i, i + 50))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%acur%d = load i8 , i8 *%%stop' % i
-    print '  %%aext%d = sext i8 %%acur%d to i64' % (i, i)
-    print '  %%atest%d = icmp slt i64 %%aext%d, %d' % (i, i, i + 100)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%acur%d = load i8 , i8 *%%stop' % i)
+    print('  %%aext%d = sext i8 %%acur%d to i64' % (i, i))
+    print('  %%atest%d = icmp slt i64 %%aext%d, %d' % (i, i, i + 100))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 19 - 17
test/CodeGen/SystemZ/Large/branch-range-07.py

@@ -32,37 +32,39 @@
 # CHECK: ahi {{%r[0-9]+}}, -1
 # CHECK: ahi {{%r[0-9]+}}, -1
 # CHECK: jglh
 # CHECK: jglh
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffd8
 main_size = 0xffd8
 
 
-print 'define void @f1(i8 *%base, i32 *%counts) {'
-print 'entry:'
+print('define void @f1(i8 *%base, i32 *%counts) {')
+print('entry:')
 
 
 for i in xrange(branch_blocks - 1, -1, -1):
 for i in xrange(branch_blocks - 1, -1, -1):
-    print '  %%countptr%d = getelementptr i32, i32 *%%counts, i64 %d' % (i, i)
-    print '  %%initcount%d = load i32 , i32 *%%countptr%d' % (i, i)
-    print '  br label %%loop%d' % i
+    print('  %%countptr%d = getelementptr i32, i32 *%%counts, i64 %d' % (i, i))
+    print('  %%initcount%d = load i32 , i32 *%%countptr%d' % (i, i))
+    print('  br label %%loop%d' % i)
     
     
-    print 'loop%d:' % i
+    print('loop%d:' % i)
     block1 = 'entry' if i == branch_blocks - 1 else 'loop%d' % (i + 1)
     block1 = 'entry' if i == branch_blocks - 1 else 'loop%d' % (i + 1)
     block2 = 'loop0' if i == 0 else 'after%d' % (i - 1)
     block2 = 'loop0' if i == 0 else 'after%d' % (i - 1)
-    print ('  %%count%d = phi i32 [ %%initcount%d, %%%s ],'
-           ' [ %%nextcount%d, %%%s ]' % (i, i, block1, i, block2))
+    print(('  %%count%d = phi i32 [ %%initcount%d, %%%s ],'
+           ' [ %%nextcount%d, %%%s ]' % (i, i, block1, i, block2)))
 
 
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%nextcount%d = add i32 %%count%d, -1' % (i, i)
-    print '  %%test%d = icmp ne i32 %%nextcount%d, 0' % (i, i)
-    print '  br i1 %%test%d, label %%loop%d, label %%after%d' % (i, i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%nextcount%d = add i32 %%count%d, -1' % (i, i))
+    print('  %%test%d = icmp ne i32 %%nextcount%d, 0' % (i, i))
+    print('  br i1 %%test%d, label %%loop%d, label %%after%d' % (i, i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  ret void'
-print '}'
+print('  ret void')
+print('}')

+ 19 - 17
test/CodeGen/SystemZ/Large/branch-range-08.py

@@ -33,37 +33,39 @@
 # CHECK: aghi {{%r[0-9]+}}, -1
 # CHECK: aghi {{%r[0-9]+}}, -1
 # CHECK: jglh
 # CHECK: jglh
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffd8
 main_size = 0xffd8
 
 
-print 'define void @f1(i8 *%base, i64 *%counts) {'
-print 'entry:'
+print('define void @f1(i8 *%base, i64 *%counts) {')
+print('entry:')
 
 
 for i in xrange(branch_blocks - 1, -1, -1):
 for i in xrange(branch_blocks - 1, -1, -1):
-    print '  %%countptr%d = getelementptr i64, i64 *%%counts, i64 %d' % (i, i)
-    print '  %%initcount%d = load i64 , i64 *%%countptr%d' % (i, i)
-    print '  br label %%loop%d' % i
+    print('  %%countptr%d = getelementptr i64, i64 *%%counts, i64 %d' % (i, i))
+    print('  %%initcount%d = load i64 , i64 *%%countptr%d' % (i, i))
+    print('  br label %%loop%d' % i)
     
     
-    print 'loop%d:' % i
+    print('loop%d:' % i)
     block1 = 'entry' if i == branch_blocks - 1 else 'loop%d' % (i + 1)
     block1 = 'entry' if i == branch_blocks - 1 else 'loop%d' % (i + 1)
     block2 = 'loop0' if i == 0 else 'after%d' % (i - 1)
     block2 = 'loop0' if i == 0 else 'after%d' % (i - 1)
-    print ('  %%count%d = phi i64 [ %%initcount%d, %%%s ],'
-           ' [ %%nextcount%d, %%%s ]' % (i, i, block1, i, block2))
+    print(('  %%count%d = phi i64 [ %%initcount%d, %%%s ],'
+           ' [ %%nextcount%d, %%%s ]' % (i, i, block1, i, block2)))
 
 
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%nextcount%d = add i64 %%count%d, -1' % (i, i)
-    print '  %%test%d = icmp ne i64 %%nextcount%d, 0' % (i, i)
-    print '  br i1 %%test%d, label %%loop%d, label %%after%d' % (i, i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%nextcount%d = add i64 %%count%d, -1' % (i, i))
+    print('  %%test%d = icmp ne i64 %%nextcount%d, 0' % (i, i))
+    print('  br i1 %%test%d, label %%loop%d, label %%after%d' % (i, i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  ret void'
-print '}'
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-09.py

@@ -67,44 +67,46 @@
 # CHECK: clr %r4, [[REG]]
 # CHECK: clr %r4, [[REG]]
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop, i32 %limit) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop, i32 %limit) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i)
-    print '  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i)
-    print '  %%bext%d = sext i8 %%bcur%d to i32' % (i, i)
-    print '  %%btest%d = icmp ult i32 %%limit, %%bext%d' % (i, i)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i))
+    print('  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i))
+    print('  %%bext%d = sext i8 %%bcur%d to i32' % (i, i))
+    print('  %%btest%d = icmp ult i32 %%limit, %%bext%d' % (i, i))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25)
-    print '  %%acur%d = load i8 , i8 *%%astop%d' % (i, i)
-    print '  %%aext%d = sext i8 %%acur%d to i32' % (i, i)
-    print '  %%atest%d = icmp ult i32 %%limit, %%aext%d' % (i, i)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25))
+    print('  %%acur%d = load i8 , i8 *%%astop%d' % (i, i))
+    print('  %%aext%d = sext i8 %%acur%d to i32' % (i, i))
+    print('  %%atest%d = icmp ult i32 %%limit, %%aext%d' % (i, i))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-10.py

@@ -71,44 +71,46 @@
 # CHECK: clgr %r4, [[REG]]
 # CHECK: clgr %r4, [[REG]]
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffcc
 main_size = 0xffcc
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i8 *%stop, i64 %limit) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i8 *%stop, i64 %limit) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i)
-    print '  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i)
-    print '  %%bext%d = sext i8 %%bcur%d to i64' % (i, i)
-    print '  %%btest%d = icmp ult i64 %%limit, %%bext%d' % (i, i)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bstop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i))
+    print('  %%bcur%d = load i8 , i8 *%%bstop%d' % (i, i))
+    print('  %%bext%d = sext i8 %%bcur%d to i64' % (i, i))
+    print('  %%btest%d = icmp ult i64 %%limit, %%bext%d' % (i, i))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25)
-    print '  %%acur%d = load i8 , i8 *%%astop%d' % (i, i)
-    print '  %%aext%d = sext i8 %%acur%d to i64' % (i, i)
-    print '  %%atest%d = icmp ult i64 %%limit, %%aext%d' % (i, i)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%astop%d = getelementptr i8, i8 *%%stop, i64 %d' % (i, i + 25))
+    print('  %%acur%d = load i8 , i8 *%%astop%d' % (i, i))
+    print('  %%aext%d = sext i8 %%acur%d to i64' % (i, i))
+    print('  %%atest%d = icmp ult i64 %%limit, %%aext%d' % (i, i))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-11.py

@@ -87,44 +87,46 @@
 # CHECK: clfi [[REG]], 107
 # CHECK: clfi [[REG]], 107
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffc6
 main_size = 0xffc6
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i32 *%stopa, i32 *%stopb) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i32 *%stopa, i32 *%stopb) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bcur%da = load i32 , i32 *%%stopa' % i
-    print '  %%bcur%db = load i32 , i32 *%%stopb' % i
-    print '  %%bsub%d = sub i32 %%bcur%da, %%bcur%db' % (i, i, i)
-    print '  %%btest%d = icmp ult i32 %%bsub%d, %d' % (i, i, i + 50)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bcur%da = load i32 , i32 *%%stopa' % i)
+    print('  %%bcur%db = load i32 , i32 *%%stopb' % i)
+    print('  %%bsub%d = sub i32 %%bcur%da, %%bcur%db' % (i, i, i))
+    print('  %%btest%d = icmp ult i32 %%bsub%d, %d' % (i, i, i + 50))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%acur%da = load i32 , i32 *%%stopa' % i
-    print '  %%acur%db = load i32 , i32 *%%stopb' % i
-    print '  %%asub%d = sub i32 %%acur%da, %%acur%db' % (i, i, i)
-    print '  %%atest%d = icmp ult i32 %%asub%d, %d' % (i, i, i + 100)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%acur%da = load i32 , i32 *%%stopa' % i)
+    print('  %%acur%db = load i32 , i32 *%%stopb' % i)
+    print('  %%asub%d = sub i32 %%acur%da, %%acur%db' % (i, i, i))
+    print('  %%atest%d = icmp ult i32 %%asub%d, %d' % (i, i, i + 100))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 27 - 25
test/CodeGen/SystemZ/Large/branch-range-12.py

@@ -87,44 +87,46 @@
 # CHECK: clgfi [[REG]], 107
 # CHECK: clgfi [[REG]], 107
 # CHECK: jgl [[LABEL]]
 # CHECK: jgl [[LABEL]]
 
 
+from __future__ import print_function
+
 branch_blocks = 8
 branch_blocks = 8
 main_size = 0xffb4
 main_size = 0xffb4
 
 
-print '@global = global i32 0'
+print('@global = global i32 0')
 
 
-print 'define void @f1(i8 *%base, i64 *%stopa, i64 *%stopb) {'
-print 'entry:'
-print '  br label %before0'
-print ''
+print('define void @f1(i8 *%base, i64 *%stopa, i64 *%stopb) {')
+print('entry:')
+print('  br label %before0')
+print('')
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
     next = 'before%d' % (i + 1) if i + 1 < branch_blocks else 'main'
-    print 'before%d:' % i
-    print '  %%bcur%da = load i64 , i64 *%%stopa' % i
-    print '  %%bcur%db = load i64 , i64 *%%stopb' % i
-    print '  %%bsub%d = sub i64 %%bcur%da, %%bcur%db' % (i, i, i)
-    print '  %%btest%d = icmp ult i64 %%bsub%d, %d' % (i, i, i + 50)
-    print '  br i1 %%btest%d, label %%after0, label %%%s' % (i, next)
-    print ''
+    print('before%d:' % i)
+    print('  %%bcur%da = load i64 , i64 *%%stopa' % i)
+    print('  %%bcur%db = load i64 , i64 *%%stopb' % i)
+    print('  %%bsub%d = sub i64 %%bcur%da, %%bcur%db' % (i, i, i))
+    print('  %%btest%d = icmp ult i64 %%bsub%d, %d' % (i, i, i + 50))
+    print('  br i1 %%btest%d, label %%after0, label %%%s' % (i, next))
+    print('')
 
 
-print '%s:' % next
+print('%s:' % next)
 a, b = 1, 1
 a, b = 1, 1
 for i in xrange(0, main_size, 6):
 for i in xrange(0, main_size, 6):
     a, b = b, a + b
     a, b = b, a + b
     offset = 4096 + b % 500000
     offset = 4096 + b % 500000
     value = a % 256
     value = a % 256
-    print '  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset)
-    print '  store volatile i8 %d, i8 *%%ptr%d' % (value, i)
+    print('  %%ptr%d = getelementptr i8, i8 *%%base, i64 %d' % (i, offset))
+    print('  store volatile i8 %d, i8 *%%ptr%d' % (value, i))
 
 
 for i in xrange(branch_blocks):
 for i in xrange(branch_blocks):
-    print '  %%acur%da = load i64 , i64 *%%stopa' % i
-    print '  %%acur%db = load i64 , i64 *%%stopb' % i
-    print '  %%asub%d = sub i64 %%acur%da, %%acur%db' % (i, i, i)
-    print '  %%atest%d = icmp ult i64 %%asub%d, %d' % (i, i, i + 100)
-    print '  br i1 %%atest%d, label %%main, label %%after%d' % (i, i)
-    print ''
-    print 'after%d:' % i
+    print('  %%acur%da = load i64 , i64 *%%stopa' % i)
+    print('  %%acur%db = load i64 , i64 *%%stopb' % i)
+    print('  %%asub%d = sub i64 %%acur%da, %%acur%db' % (i, i, i))
+    print('  %%atest%d = icmp ult i64 %%asub%d, %d' % (i, i, i + 100))
+    print('  br i1 %%atest%d, label %%main, label %%after%d' % (i, i))
+    print('')
+    print('after%d:' % i)
 
 
-print '  %dummy = load volatile i32, i32 *@global'
-print '  ret void'
-print '}'
+print('  %dummy = load volatile i32, i32 *@global')
+print('  ret void')
+print('}')

+ 15 - 12
test/CodeGen/SystemZ/Large/spill-01.py

@@ -18,23 +18,26 @@
 # CHECK: lay [[REG:%r[0-5]]], 4096(%r15)
 # CHECK: lay [[REG:%r[0-5]]], 4096(%r15)
 # CHECK: mvc {{[0-9]+}}(8,{{%r[0-9]+}}), 8([[REG]])
 # CHECK: mvc {{[0-9]+}}(8,{{%r[0-9]+}}), 8([[REG]])
 # CHECK: br %r14
 # CHECK: br %r14
+
+from __future__ import print_function
+
 count = 500
 count = 500
 
 
-print 'declare void @foo()'
-print ''
-print 'define void @f1(i64 *%base0, i64 *%base1) {'
+print('declare void @foo()')
+print('')
+print('define void @f1(i64 *%base0, i64 *%base1) {')
 
 
 for i in range(count):
 for i in range(count):
-    print '  %%ptr%d = getelementptr i64, i64 *%%base%d, i64 %d' % (i, i % 2, i / 2)
-    print '  %%val%d = load i64 , i64 *%%ptr%d' % (i, i)
-    print ''
+    print('  %%ptr%d = getelementptr i64, i64 *%%base%d, i64 %d' % (i, i % 2, i / 2))
+    print('  %%val%d = load i64 , i64 *%%ptr%d' % (i, i))
+    print('')
 
 
-print '  call void @foo()'
-print ''
+print('  call void @foo()')
+print('')
 
 
 for i in range(count):
 for i in range(count):
-    print '  store i64 %%val%d, i64 *%%ptr%d' % (i, i)
+    print('  store i64 %%val%d, i64 *%%ptr%d' % (i, i))
 
 
-print ''
-print '  ret void'
-print '}'
+print('')
+print('  ret void')
+print('}')

+ 31 - 28
test/CodeGen/SystemZ/Large/spill-02.py

@@ -19,55 +19,58 @@
 # the first 8168 bytes to be used for the call.  160 of these bytes are
 # the first 8168 bytes to be used for the call.  160 of these bytes are
 # allocated for the ABI frame.  There are also 5 argument registers, one of
 # allocated for the ABI frame.  There are also 5 argument registers, one of
 # which is used as a base pointer.
 # which is used as a base pointer.
+
+from __future__ import print_function
+
 args = (8168 - 160) / 8 + (5 - 1)
 args = (8168 - 160) / 8 + (5 - 1)
 
 
-print 'declare i64 *@foo(i64 *%s)' % (', i64' * args)
-print 'declare void @bar(i64 *)'
-print ''
-print 'define i64 @f1(i64 %foo) {'
-print 'entry:'
+print('declare i64 *@foo(i64 *%s)' % (', i64' * args))
+print('declare void @bar(i64 *)')
+print('')
+print('define i64 @f1(i64 %foo) {')
+print('entry:')
 
 
 # Make the allocation big, so that it goes at the top of the frame.
 # Make the allocation big, so that it goes at the top of the frame.
-print '  %array = alloca [1000 x i64]'
-print '  %area = getelementptr [1000 x i64], [1000 x i64] *%array, i64 0, i64 0'
-print '  %%base = call i64 *@foo(i64 *%%area%s)' % (', i64 0' * args)
-print ''
+print('  %array = alloca [1000 x i64]')
+print('  %area = getelementptr [1000 x i64], [1000 x i64] *%array, i64 0, i64 0')
+print('  %%base = call i64 *@foo(i64 *%%area%s)' % (', i64 0' * args))
+print('')
 
 
 # Make sure all GPRs are used.  One is needed for the stack pointer and
 # Make sure all GPRs are used.  One is needed for the stack pointer and
 # another for %base, so we need 14 live values.
 # another for %base, so we need 14 live values.
 count = 14
 count = 14
 for i in range(count):
 for i in range(count):
-    print '  %%ptr%d = getelementptr i64, i64 *%%base, i64 %d' % (i, i / 2)
-    print '  %%val%d = load volatile i64 , i64 *%%ptr%d' % (i, i)
-    print ''
+    print('  %%ptr%d = getelementptr i64, i64 *%%base, i64 %d' % (i, i / 2))
+    print('  %%val%d = load volatile i64 , i64 *%%ptr%d' % (i, i))
+    print('')
 
 
 # Encourage the register allocator to give preference to these %vals
 # Encourage the register allocator to give preference to these %vals
 # by using them several times.
 # by using them several times.
 for j in range(4):
 for j in range(4):
     for i in range(count):
     for i in range(count):
-        print '  store volatile i64 %%val%d, i64 *%%ptr%d' % (i, i)
-    print ''
+        print('  store volatile i64 %%val%d, i64 *%%ptr%d' % (i, i))
+    print('')
 
 
 # Copy the incoming argument, which we expect to be spilled, to the frame
 # Copy the incoming argument, which we expect to be spilled, to the frame
 # index for the alloca area.  Also throw in a volatile store, so that this
 # index for the alloca area.  Also throw in a volatile store, so that this
 # block cannot be reordered with the surrounding code.
 # block cannot be reordered with the surrounding code.
-print '  %cond = icmp eq i64 %val0, %val1'
-print '  br i1 %cond, label %skip, label %fallthru'
-print ''
-print 'fallthru:'
-print '  store i64 %foo, i64 *%area'
-print '  store volatile i64 %val0, i64 *%ptr0'
-print '  br label %skip'
-print ''
-print 'skip:'
+print('  %cond = icmp eq i64 %val0, %val1')
+print('  br i1 %cond, label %skip, label %fallthru')
+print('')
+print('fallthru:')
+print('  store i64 %foo, i64 *%area')
+print('  store volatile i64 %val0, i64 *%ptr0')
+print('  br label %skip')
+print('')
+print('skip:')
 
 
 # Use each %val a few more times to emphasise the point, and to make sure
 # Use each %val a few more times to emphasise the point, and to make sure
 # that they are live across the store of %foo.
 # that they are live across the store of %foo.
 for j in range(4):
 for j in range(4):
     for i in range(count):
     for i in range(count):
-        print '  store volatile i64 %%val%d, i64 *%%ptr%d' % (i, i)
-    print ''
+        print('  store volatile i64 %%val%d, i64 *%%ptr%d' % (i, i))
+    print('')
 
 
-print '  call void @bar(i64 *%area)'
-print '  ret i64 0'
-print '}'
+print('  call void @bar(i64 *%area)')
+print('  ret i64 0')
+print('}')

+ 2 - 0
test/MC/COFF/bigobj.py

@@ -1,5 +1,7 @@
 # RUN: python %s | llvm-mc -filetype=obj -triple i686-pc-win32 - | llvm-readobj -h | FileCheck %s
 # RUN: python %s | llvm-mc -filetype=obj -triple i686-pc-win32 - | llvm-readobj -h | FileCheck %s
 
 
+from __future__ import print_function
+
 # This test checks that the COFF object emitter can produce objects with
 # This test checks that the COFF object emitter can produce objects with
 # more than 65279 sections.
 # more than 65279 sections.
 
 

+ 2 - 0
test/Other/opt-bisect-helper.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import os
 import os
 import sys
 import sys
 import argparse
 import argparse

+ 2 - 0
test/tools/llvm-readobj/Inputs/relocs.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 # Generates ELF, COFF and MachO object files for different architectures
 # Generates ELF, COFF and MachO object files for different architectures
 # containing all relocations:
 # containing all relocations:
 #
 #

+ 2 - 0
tools/sancov/coverage-report-server.py

@@ -22,6 +22,8 @@ Other options:
     --host host_name - host name to bind server to (127.0.0.1)
     --host host_name - host name to bind server to (127.0.0.1)
 '''
 '''
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import http.server
 import http.server
 import json
 import json

+ 4 - 1
utils/DSAclean.py

@@ -8,10 +8,13 @@
 #the comments
 #the comments
 #10/12/2005: now it only removes nodes and edges for which the label is %tmp.# rather
 #10/12/2005: now it only removes nodes and edges for which the label is %tmp.# rather
 #than removing all lines for which the lable CONTAINS %tmp.#
 #than removing all lines for which the lable CONTAINS %tmp.#
+
+from __future__ import print_function
+
 import re
 import re
 import sys
 import sys
 if( len(sys.argv) < 3 ):
 if( len(sys.argv) < 3 ):
-	print 'usage is: ./DSAclean <dot_file_to_be_cleaned> <out_put_file>'
+	print('usage is: ./DSAclean <dot_file_to_be_cleaned> <out_put_file>')
 	sys.exit(1)
 	sys.exit(1)
 #get a file object
 #get a file object
 input = open(sys.argv[1], 'r')
 input = open(sys.argv[1], 'r')

+ 5 - 3
utils/DSAextract.py

@@ -25,14 +25,16 @@
 #currently the script prints the names it is searching for
 #currently the script prints the names it is searching for
 #to STDOUT, so you can check to see if they are what you intend
 #to STDOUT, so you can check to see if they are what you intend
 
 
+from __future__ import print_function
+
 import re
 import re
 import string
 import string
 import sys
 import sys
 
 
 
 
 if len(sys.argv) < 3:
 if len(sys.argv) < 3:
-	print 'usage is ./DSAextract <dot_file_to_modify> \
-			<output_file> [list of nodes to extract]'
+	print('usage is ./DSAextract <dot_file_to_modify> \
+			<output_file> [list of nodes to extract]')
 
 
 #open the input file
 #open the input file
 input = open(sys.argv[1], 'r')
 input = open(sys.argv[1], 'r')
@@ -73,7 +75,7 @@ while buffer != '':
 #test code
 #test code
 #print '\n'
 #print '\n'
 
 
-print node_name_set
+print(node_name_set)
 
 
 #print node_set
 #print node_set
 	
 	

+ 2 - 0
utils/Reviewing/find_interesting_reviews.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import email.mime.multipart
 import email.mime.multipart
 import email.mime.text
 import email.mime.text

+ 6 - 4
utils/Target/ARM/analyze-match-table.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 def analyze_match_table(path):
 def analyze_match_table(path):
     # Extract the instruction table.
     # Extract the instruction table.
     data = open(path).read()
     data = open(path).read()
@@ -37,10 +39,10 @@ def analyze_match_table(path):
     condcode_mnemonics = set(m for m in mnemonics
     condcode_mnemonics = set(m for m in mnemonics
                              if 'MCK_CondCode' in mnemonic_flags[m])
                              if 'MCK_CondCode' in mnemonic_flags[m])
     noncondcode_mnemonics = mnemonics - condcode_mnemonics
     noncondcode_mnemonics = mnemonics - condcode_mnemonics
-    print ' || '.join('Mnemonic == "%s"' % m
-                      for m in ccout_mnemonics)
-    print ' || '.join('Mnemonic == "%s"' % m
-                      for m in noncondcode_mnemonics)
+    print(' || '.join('Mnemonic == "%s"' % m
+                      for m in ccout_mnemonics))
+    print(' || '.join('Mnemonic == "%s"' % m
+                      for m in noncondcode_mnemonics))
 
 
 def main():
 def main():
     import sys
     import sys

+ 14 - 12
utils/create_ladder_graph.py

@@ -10,6 +10,8 @@ One good use of this program is to test whether your linear time algorithm is
 really behaving linearly.
 really behaving linearly.
 """
 """
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 def main():
 def main():
   parser = argparse.ArgumentParser(description=__doc__)
   parser = argparse.ArgumentParser(description=__doc__)
@@ -17,27 +19,27 @@ def main():
                       help="Number of ladder rungs. Must be a multiple of 2")
                       help="Number of ladder rungs. Must be a multiple of 2")
   args = parser.parse_args()
   args = parser.parse_args()
   if (args.rungs % 2) != 0:
   if (args.rungs % 2) != 0:
-    print "Rungs must be a multiple of 2"
+    print("Rungs must be a multiple of 2")
     return
     return
-  print "int ladder(int *foo, int *bar, int x) {"
+  print("int ladder(int *foo, int *bar, int x) {")
   rung1 = xrange(0, args.rungs, 2)
   rung1 = xrange(0, args.rungs, 2)
   rung2 = xrange(1, args.rungs, 2)
   rung2 = xrange(1, args.rungs, 2)
   for i in rung1:
   for i in rung1:
-    print "rung1%d:" % i
-    print "*foo = x++;"
+    print("rung1%d:" % i)
+    print("*foo = x++;")
     if i != rung1[-1]:
     if i != rung1[-1]:
-      print "if (*bar) goto rung1%d;" % (i+2)
-      print "else goto rung2%d;" % (i+1)
+      print("if (*bar) goto rung1%d;" % (i+2))
+      print("else goto rung2%d;" % (i+1))
     else:
     else:
-      print "goto rung2%d;" % (i+1)
+      print("goto rung2%d;" % (i+1))
   for i in rung2:
   for i in rung2:
-    print "rung2%d:" % i
-    print "*foo = x++;"
+    print("rung2%d:" % i)
+    print("*foo = x++;")
     if i != rung2[-1]:
     if i != rung2[-1]:
-      print "goto rung2%d;" % (i+2)
+      print("goto rung2%d;" % (i+2))
     else:
     else:
-      print "return *foo;"
-  print "}"
+      print("return *foo;")
+  print("}")
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
   main()
   main()

+ 2 - 0
utils/demangle_tree.py

@@ -4,6 +4,8 @@
 # demanglings.  Useful for stress testing the demangler against a large corpus
 # demanglings.  Useful for stress testing the demangler against a large corpus
 # of inputs.
 # of inputs.
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import functools
 import functools
 import os
 import os

+ 2 - 0
utils/extract_vplan.py

@@ -4,6 +4,8 @@
 # and saves them in individual dot files (one for each plan). Optionally, and
 # and saves them in individual dot files (one for each plan). Optionally, and
 # providing 'dot' is installed, it can also render the dot into a PNG file.
 # providing 'dot' is installed, it can also render the dot into a PNG file.
 
 
+from __future__ import print_function
+
 import sys
 import sys
 import re
 import re
 import argparse
 import argparse

+ 2 - 0
utils/gdb-scripts/prettyprinters.py

@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import gdb.printing
 import gdb.printing
 
 
 class Iterator:
 class Iterator:

+ 4 - 2
utils/indirect_calls.py

@@ -10,6 +10,8 @@
    dump format.
    dump format.
 """
 """
 
 
+from __future__ import print_function
+
 import os
 import os
 import sys
 import sys
 import re
 import re
@@ -32,8 +34,8 @@ def look_for_indirect(file):
         result = re.search('(call|jmp).*\*', line)
         result = re.search('(call|jmp).*\*', line)
         if result != None:
         if result != None:
             # TODO: Perhaps use cxxfilt to demangle functions?
             # TODO: Perhaps use cxxfilt to demangle functions?
-            print function
-            print line
+            print(function)
+            print(line)
     return
     return
 
 
 def main(args):
 def main(args):

+ 2 - 1
utils/lint/common_lint.py

@@ -2,6 +2,7 @@
 #
 #
 # Common lint functions applicable to multiple types of files.
 # Common lint functions applicable to multiple types of files.
 
 
+from __future__ import print_function
 import re
 import re
 
 
 def VerifyLineLength(filename, lines, max_length):
 def VerifyLineLength(filename, lines, max_length):
@@ -89,7 +90,7 @@ def RunLintOverAllFiles(linter, filenames):
   for filename in filenames:
   for filename in filenames:
     file = open(filename, 'r')
     file = open(filename, 'r')
     if not file:
     if not file:
-      print 'Cound not open %s' % filename
+      print('Cound not open %s' % filename)
       continue
       continue
     lines = file.readlines()
     lines = file.readlines()
     lint.extend(linter.RunOnFile(filename, lines))
     lint.extend(linter.RunOnFile(filename, lines))

+ 2 - 1
utils/lint/cpp_lint.py

@@ -6,6 +6,7 @@
 # TODO: add unittests for the verifier functions:
 # TODO: add unittests for the verifier functions:
 # http://docs.python.org/library/unittest.html .
 # http://docs.python.org/library/unittest.html .
 
 
+from __future__ import print_function
 import common_lint
 import common_lint
 import re
 import re
 import sys
 import sys
@@ -86,7 +87,7 @@ class CppLint(common_lint.BaseLint):
 def CppLintMain(filenames):
 def CppLintMain(filenames):
   all_lint = common_lint.RunLintOverAllFiles(CppLint(), filenames)
   all_lint = common_lint.RunLintOverAllFiles(CppLint(), filenames)
   for lint in all_lint:
   for lint in all_lint:
-    print '%s:%d:%s' % (lint[0], lint[1], lint[2])
+    print('%s:%d:%s' % (lint[0], lint[1], lint[2]))
   return 0
   return 0
 
 
 
 

+ 2 - 0
utils/lit/lit/util.py

@@ -1,3 +1,5 @@
+from __future__ import print_function
+
 import errno
 import errno
 import itertools
 import itertools
 import math
 import math

+ 2 - 1
utils/lit/tests/Inputs/shtest-env/print_environment.py

@@ -1,8 +1,9 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_statement
 import os
 import os
 
 
 sorted_environment = sorted(os.environ.items())
 sorted_environment = sorted(os.environ.items())
 
 
 for name,value in sorted_environment:
 for name,value in sorted_environment:
-    print name,'=',value
+    print(name,'=',value)

+ 2 - 0
utils/lit/tests/Inputs/shtest-shell/check_path.py

@@ -1,5 +1,7 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
 
 
+from __future__ import print_function
+
 import os
 import os
 import sys
 import sys
 
 

+ 3 - 3
utils/llvm-build/llvmbuild/componentinfo.py

@@ -2,7 +2,7 @@
 Descriptor objects for entities that are part of the LLVM project.
 Descriptor objects for entities that are part of the LLVM project.
 """
 """
 
 
-from __future__ import absolute_import
+from __future__ import absolute_import, print_function
 try:
 try:
     import configparser
     import configparser
 except:
 except:
@@ -461,8 +461,8 @@ def _read_components_from_parser(parser, path, subpath):
             info = type_class.parse(subpath,
             info = type_class.parse(subpath,
                                     IniFormatParser(parser.items(section)))
                                     IniFormatParser(parser.items(section)))
         except TypeError:
         except TypeError:
-            print >>sys.stderr, "error: invalid component %r in %r: %s" % (
-                section, path, "unable to instantiate: %r" % type_name)
+            print("error: invalid component %r in %r: %s" % (
+                section, path, "unable to instantiate: %r" % type_name), file=sys.stderr)
             import traceback
             import traceback
             traceback.print_exc()
             traceback.print_exc()
             raise SystemExit(1)
             raise SystemExit(1)

+ 3 - 2
utils/llvm-gisel-cov.py

@@ -5,6 +5,7 @@ Summarize the information in the given coverage files.
 Emits the number of rules covered or the percentage of rules covered depending
 Emits the number of rules covered or the percentage of rules covered depending
 on whether --num-rules has been used to specify the total number of rules.
 on whether --num-rules has been used to specify the total number of rules.
 """
 """
+from __future__ import print_function
 
 
 import argparse
 import argparse
 import struct
 import struct
@@ -59,9 +60,9 @@ def main():
   num_rules = dict(args.num_rules)
   num_rules = dict(args.num_rules)
   for backend, rules_for_backend in covered_rules.items():
   for backend, rules_for_backend in covered_rules.items():
     if backend in num_rules:
     if backend in num_rules:
-      print "%s: %3.2f%% of rules covered" % (backend, (float(len(rules_for_backend.keys())) / num_rules[backend]) * 100)
+      print("%s: %3.2f%% of rules covered" % (backend, float(len(rules_for_backend)) / num_rules[backend]) * 100))
     else:
     else:
-      print "%s: %d rules covered" % (backend, len(rules_for_backend.keys()))
+      print("%s: %d rules covered" % (backend, len(rules_for_backend)))
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
   main()
   main()

+ 20 - 18
utils/release/findRegressions-nightly.py

@@ -1,4 +1,6 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
+from __future__ import print_function
+
 import re, string, sys, os, time
 import re, string, sys, os, time
 
 
 DEBUG = 0
 DEBUG = 0
@@ -22,12 +24,12 @@ def parse(file):
   fname = ''
   fname = ''
   for t in r:
   for t in r:
     if DEBUG:
     if DEBUG:
-      print t
+      print(t)
     if t[0] == 'PASS' or t[0] == 'FAIL' :
     if t[0] == 'PASS' or t[0] == 'FAIL' :
       tmp = t[2].split(testDirName)
       tmp = t[2].split(testDirName)
       
       
       if DEBUG:
       if DEBUG:
-        print tmp
+        print(tmp)
       
       
       if len(tmp) == 2:
       if len(tmp) == 2:
         fname = tmp[1].strip('\r\n')
         fname = tmp[1].strip('\r\n')
@@ -41,26 +43,26 @@ def parse(file):
         test[fname][k] = 'NA'
         test[fname][k] = 'NA'
         test[fname][t[1]] = t[0]
         test[fname][t[1]] = t[0]
         if DEBUG:
         if DEBUG:
-          print test[fname][t[1]]
+          print(test[fname][t[1]])
     else :
     else :
       try:
       try:
         n = t[0].split('RESULT-')[1]
         n = t[0].split('RESULT-')[1]
         
         
         if DEBUG:
         if DEBUG:
-          print n;
+          print(n);
         
         
         if n == 'llc' or n == 'jit-comptime' or n == 'compile':
         if n == 'llc' or n == 'jit-comptime' or n == 'compile':
           test[fname][tp + n] = float(t[2].split(' ')[2])
           test[fname][tp + n] = float(t[2].split(' ')[2])
           if DEBUG:
           if DEBUG:
-            print test[fname][tp + n]
+            print(test[fname][tp + n])
         
         
         elif n.endswith('-time') :
         elif n.endswith('-time') :
             test[fname][exp + n] = float(t[2].strip('\r\n'))
             test[fname][exp + n] = float(t[2].strip('\r\n'))
             if DEBUG:
             if DEBUG:
-              print test[fname][exp + n]
+              print(test[fname][exp + n])
         
         
         else :
         else :
-          print "ERROR!"
+          print("ERROR!")
           sys.exit(1)
           sys.exit(1)
       
       
       except:
       except:
@@ -73,7 +75,7 @@ def diffResults(d_old, d_new):
 
 
   for t in sorted(d_old.keys()) :
   for t in sorted(d_old.keys()) :
     if DEBUG:
     if DEBUG:
-      print t
+      print(t)
         
         
     if d_new.has_key(t) :
     if d_new.has_key(t) :
     
     
@@ -83,42 +85,42 @@ def diffResults(d_old, d_new):
           if d_new[t].has_key(x):
           if d_new[t].has_key(x):
             if d_old[t][x] == 'PASS':
             if d_old[t][x] == 'PASS':
               if d_new[t][x] != 'PASS':
               if d_new[t][x] != 'PASS':
-                print t + " *** REGRESSION (" + x + ")\n"
+                print(t + " *** REGRESSION (" + x + ")\n")
             else:
             else:
               if d_new[t][x] == 'PASS':
               if d_new[t][x] == 'PASS':
-                print t + " * NEW PASS (" + x + ")\n"
+                print(t + " * NEW PASS (" + x + ")\n")
                 
                 
           else :
           else :
-            print t + "*** REGRESSION (" + x + ")\n"
+            print(t + "*** REGRESSION (" + x + ")\n")
         
         
         # For execution time, if there is no result, its a fail.
         # For execution time, if there is no result, its a fail.
         for x in exectime:
         for x in exectime:
           if d_old[t].has_key(tp + x):
           if d_old[t].has_key(tp + x):
             if not d_new[t].has_key(tp + x):
             if not d_new[t].has_key(tp + x):
-              print t + " *** REGRESSION (" + tp + x + ")\n"
+              print(t + " *** REGRESSION (" + tp + x + ")\n")
                 
                 
           else :
           else :
             if d_new[t].has_key(tp + x):
             if d_new[t].has_key(tp + x):
-              print t + " * NEW PASS (" + tp + x + ")\n"
+              print(t + " * NEW PASS (" + tp + x + ")\n")
 
 
        
        
         for x in comptime:
         for x in comptime:
           if d_old[t].has_key(exp + x):
           if d_old[t].has_key(exp + x):
             if not d_new[t].has_key(exp + x):
             if not d_new[t].has_key(exp + x):
-              print t + " *** REGRESSION (" + exp + x + ")\n"
+              print(t + " *** REGRESSION (" + exp + x + ")\n")
                 
                 
           else :
           else :
             if d_new[t].has_key(exp + x):
             if d_new[t].has_key(exp + x):
-              print t + " * NEW PASS (" + exp + x + ")\n"
+              print(t + " * NEW PASS (" + exp + x + ")\n")
               
               
     else :
     else :
-      print t + ": Removed from test-suite.\n"
+      print(t + ": Removed from test-suite.\n")
     
     
 
 
 #Main
 #Main
 if len(sys.argv) < 3 :
 if len(sys.argv) < 3 :
-    print 'Usage:', sys.argv[0], \
-          '<old log> <new log>'
+    print('Usage:', sys.argv[0], \
+          '<old log> <new log>')
     sys.exit(-1)
     sys.exit(-1)
 
 
 d_old = parse(sys.argv[1])
 d_old = parse(sys.argv[1])

+ 21 - 19
utils/release/findRegressions-simple.py

@@ -1,4 +1,6 @@
 #!/usr/bin/env python
 #!/usr/bin/env python
+
+from __future__ import print_function
 import re, string, sys, os, time, math
 import re, string, sys, os, time, math
 
 
 DEBUG = 0
 DEBUG = 0
@@ -18,13 +20,13 @@ def parse(file):
   fname = ''
   fname = ''
   for t in r:
   for t in r:
     if DEBUG:
     if DEBUG:
-      print t
+      print(t)
 
 
     if t[0] == 'PASS' or t[0] == 'FAIL' :
     if t[0] == 'PASS' or t[0] == 'FAIL' :
       tmp = t[2].split('llvm-test/')
       tmp = t[2].split('llvm-test/')
       
       
       if DEBUG:
       if DEBUG:
-        print tmp
+        print(tmp)
 
 
       if len(tmp) == 2:
       if len(tmp) == 2:
         fname = tmp[1].strip('\r\n')
         fname = tmp[1].strip('\r\n')
@@ -41,7 +43,7 @@ def parse(file):
         n = t[0].split('RESULT-')[1]
         n = t[0].split('RESULT-')[1]
 
 
         if DEBUG:
         if DEBUG:
-          print "n == ", n;
+          print("n == ", n);
         
         
         if n == 'compile-success':
         if n == 'compile-success':
           test[fname]['compile time'] = float(t[2].split('program')[1].strip('\r\n'))
           test[fname]['compile time'] = float(t[2].split('program')[1].strip('\r\n'))
@@ -49,7 +51,7 @@ def parse(file):
         elif n == 'exec-success':
         elif n == 'exec-success':
           test[fname]['exec time'] = float(t[2].split('program')[1].strip('\r\n'))
           test[fname]['exec time'] = float(t[2].split('program')[1].strip('\r\n'))
           if DEBUG:
           if DEBUG:
-            print test[fname][string.replace(n, '-success', '')]
+            print(test[fname][string.replace(n, '-success', '')])
 
 
         else :
         else :
           # print "ERROR!"
           # print "ERROR!"
@@ -120,36 +122,36 @@ def diffResults(d_old, d_new):
       removed += t + "\n"
       removed += t + "\n"
 
 
   if len(regressions['compile state']) != 0:
   if len(regressions['compile state']) != 0:
-    print 'REGRESSION: Compilation Failed'
-    print regressions['compile state']
+    print('REGRESSION: Compilation Failed')
+    print(regressions['compile state'])
 
 
   if len(regressions['exec state']) != 0:
   if len(regressions['exec state']) != 0:
-    print 'REGRESSION: Execution Failed'
-    print regressions['exec state']
+    print('REGRESSION: Execution Failed')
+    print(regressions['exec state'])
 
 
   if len(regressions['compile time']) != 0:
   if len(regressions['compile time']) != 0:
-    print 'REGRESSION: Compilation Time'
-    print regressions['compile time']
+    print('REGRESSION: Compilation Time')
+    print(regressions['compile time'])
 
 
   if len(regressions['exec time']) != 0:
   if len(regressions['exec time']) != 0:
-    print 'REGRESSION: Execution Time'
-    print regressions['exec time']
+    print('REGRESSION: Execution Time')
+    print(regressions['exec time'])
 
 
   if len(passes['compile state']) != 0:
   if len(passes['compile state']) != 0:
-    print 'NEW PASSES: Compilation'
-    print passes['compile state']
+    print('NEW PASSES: Compilation')
+    print(passes['compile state'])
 
 
   if len(passes['exec state']) != 0:
   if len(passes['exec state']) != 0:
-    print 'NEW PASSES: Execution'
-    print passes['exec state']
+    print('NEW PASSES: Execution')
+    print(passes['exec state'])
 
 
   if len(removed) != 0:
   if len(removed) != 0:
-    print 'REMOVED TESTS'
-    print removed
+    print('REMOVED TESTS')
+    print(removed)
 
 
 # Main
 # Main
 if len(sys.argv) < 3 :
 if len(sys.argv) < 3 :
-  print 'Usage:', sys.argv[0], '<old log> <new log>'
+  print('Usage:', sys.argv[0], '<old log> <new log>')
   sys.exit(-1)
   sys.exit(-1)
 
 
 d_old = parse(sys.argv[1])
 d_old = parse(sys.argv[1])

+ 30 - 28
utils/shuffle_fuzz.py

@@ -13,6 +13,8 @@ set of transforms you want to test, and run the program. If it crashes, it found
 a bug.
 a bug.
 """
 """
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import itertools
 import itertools
 import random
 import random
@@ -109,13 +111,13 @@ def main():
 
 
   if args.verbose:
   if args.verbose:
     # Print out the shuffle sequence in a compact form.
     # Print out the shuffle sequence in a compact form.
-    print >>sys.stderr, ('Testing shuffle sequence "%s" (v%d%s):' %
-                         (args.seed, width, element_type))
+    print(('Testing shuffle sequence "%s" (v%d%s):' %
+                         (args.seed, width, element_type)), file=sys.stderr)
     for i, shuffles in enumerate(shuffle_tree):
     for i, shuffles in enumerate(shuffle_tree):
-      print >>sys.stderr, '  tree level %d:' % (i,)
+      print('  tree level %d:' % (i,), file=sys.stderr)
       for j, s in enumerate(shuffles):
       for j, s in enumerate(shuffles):
-        print >>sys.stderr, '    shuffle %d: %s' % (j, s)
-    print >>sys.stderr, ''
+        print('    shuffle %d: %s' % (j, s), file=sys.stderr)
+    print('', file=sys.stderr)
 
 
   # Symbolically evaluate the shuffle tree.
   # Symbolically evaluate the shuffle tree.
   inputs = [[int(j % element_modulus)
   inputs = [[int(j % element_modulus)
@@ -128,15 +130,15 @@ def main():
                 for j in s]
                 for j in s]
                for i, s in enumerate(shuffles)]
                for i, s in enumerate(shuffles)]
   if len(results) != 1:
   if len(results) != 1:
-    print >>sys.stderr, 'ERROR: Bad results: %s' % (results,)
+    print('ERROR: Bad results: %s' % (results,), file=sys.stderr)
     sys.exit(1)
     sys.exit(1)
   result = results[0]
   result = results[0]
 
 
   if args.verbose:
   if args.verbose:
-    print >>sys.stderr, 'Which transforms:'
-    print >>sys.stderr, '  from: %s' % (inputs,)
-    print >>sys.stderr, '  into: %s' % (result,)
-    print >>sys.stderr, ''
+    print('Which transforms:', file=sys.stderr)
+    print('  from: %s' % (inputs,), file=sys.stderr)
+    print('  into: %s' % (result,), file=sys.stderr)
+    print('', file=sys.stderr)
 
 
   # The IR uses silly names for floating point types. We also need a same-size
   # The IR uses silly names for floating point types. We also need a same-size
   # integer type.
   # integer type.
@@ -150,25 +152,25 @@ def main():
 
 
   # Now we need to generate IR for the shuffle function.
   # Now we need to generate IR for the shuffle function.
   subst = {'N': width, 'T': element_type, 'IT': integral_element_type}
   subst = {'N': width, 'T': element_type, 'IT': integral_element_type}
-  print """
+  print("""
 define internal fastcc <%(N)d x %(T)s> @test(%(arguments)s) noinline nounwind {
 define internal fastcc <%(N)d x %(T)s> @test(%(arguments)s) noinline nounwind {
 entry:""" % dict(subst,
 entry:""" % dict(subst,
                  arguments=', '.join(
                  arguments=', '.join(
                      ['<%(N)d x %(T)s> %%s.0.%(i)d' % dict(subst, i=i)
                      ['<%(N)d x %(T)s> %%s.0.%(i)d' % dict(subst, i=i)
-                      for i in xrange(args.max_shuffle_height + 1)]))
+                      for i in xrange(args.max_shuffle_height + 1)])))
 
 
   for i, shuffles in enumerate(shuffle_tree):
   for i, shuffles in enumerate(shuffle_tree):
    for j, s in enumerate(shuffles):
    for j, s in enumerate(shuffles):
-    print """
+    print("""
   %%s.%(next_i)d.%(j)d = shufflevector <%(N)d x %(T)s> %%s.%(i)d.%(j)d, <%(N)d x %(T)s> %%s.%(i)d.%(next_j)d, <%(N)d x i32> <%(S)s>
   %%s.%(next_i)d.%(j)d = shufflevector <%(N)d x %(T)s> %%s.%(i)d.%(j)d, <%(N)d x %(T)s> %%s.%(i)d.%(next_j)d, <%(N)d x i32> <%(S)s>
 """.strip('\n') % dict(subst, i=i, next_i=i + 1, j=j, next_j=j + 1,
 """.strip('\n') % dict(subst, i=i, next_i=i + 1, j=j, next_j=j + 1,
                        S=', '.join(['i32 ' + (str(si) if si != -1 else 'undef')
                        S=', '.join(['i32 ' + (str(si) if si != -1 else 'undef')
-                                    for si in s]))
+                                    for si in s])))
 
 
-  print """
+  print("""
   ret <%(N)d x %(T)s> %%s.%(i)d.0
   ret <%(N)d x %(T)s> %%s.%(i)d.0
 }
 }
-""" % dict(subst, i=len(shuffle_tree))
+""" % dict(subst, i=len(shuffle_tree)))
 
 
   # Generate some string constants that we can use to report errors.
   # Generate some string constants that we can use to report errors.
   for i, r in enumerate(result):
   for i, r in enumerate(result):
@@ -176,24 +178,24 @@ entry:""" % dict(subst,
       s = ('FAIL(%(seed)s): lane %(lane)d, expected %(result)d, found %%d\n\\0A' %
       s = ('FAIL(%(seed)s): lane %(lane)d, expected %(result)d, found %%d\n\\0A' %
            {'seed': args.seed, 'lane': i, 'result': r})
            {'seed': args.seed, 'lane': i, 'result': r})
       s += ''.join(['\\00' for _ in itertools.repeat(None, 128 - len(s) + 2)])
       s += ''.join(['\\00' for _ in itertools.repeat(None, 128 - len(s) + 2)])
-      print """
+      print("""
 @error.%(i)d = private unnamed_addr global [128 x i8] c"%(s)s"
 @error.%(i)d = private unnamed_addr global [128 x i8] c"%(s)s"
-""".strip() % {'i': i, 's': s}
+""".strip() % {'i': i, 's': s})
 
 
   # Define a wrapper function which is marked 'optnone' to prevent
   # Define a wrapper function which is marked 'optnone' to prevent
   # interprocedural optimizations from deleting the test.
   # interprocedural optimizations from deleting the test.
-  print """
+  print("""
 define internal fastcc <%(N)d x %(T)s> @test_wrapper(%(arguments)s) optnone noinline {
 define internal fastcc <%(N)d x %(T)s> @test_wrapper(%(arguments)s) optnone noinline {
   %%result = call fastcc <%(N)d x %(T)s> @test(%(arguments)s)
   %%result = call fastcc <%(N)d x %(T)s> @test(%(arguments)s)
   ret <%(N)d x %(T)s> %%result
   ret <%(N)d x %(T)s> %%result
 }
 }
 """ % dict(subst,
 """ % dict(subst,
            arguments=', '.join(['<%(N)d x %(T)s> %%s.%(i)d' % dict(subst, i=i)
            arguments=', '.join(['<%(N)d x %(T)s> %%s.%(i)d' % dict(subst, i=i)
-                                for i in xrange(args.max_shuffle_height + 1)]))
+                                for i in xrange(args.max_shuffle_height + 1)])))
 
 
   # Finally, generate a main function which will trap if any lanes are mapped
   # Finally, generate a main function which will trap if any lanes are mapped
   # incorrectly (in an observable way).
   # incorrectly (in an observable way).
-  print """
+  print("""
 define i32 @main() {
 define i32 @main() {
 entry:
 entry:
   ; Create a scratch space to print error messages.
   ; Create a scratch space to print error messages.
@@ -212,18 +214,18 @@ entry:
                  '(<%(N)d x %(IT)s> <%(input)s> to <%(N)d x %(T)s>)' %
                  '(<%(N)d x %(IT)s> <%(input)s> to <%(N)d x %(T)s>)' %
                  dict(subst, input=', '.join(['%(IT)s %(i)d' % dict(subst, i=i)
                  dict(subst, input=', '.join(['%(IT)s %(i)d' % dict(subst, i=i)
                                               for i in input])))
                                               for i in input])))
-                for input in inputs]))
+                for input in inputs])))
 
 
   # Test that each non-undef result lane contains the expected value.
   # Test that each non-undef result lane contains the expected value.
   for i, r in enumerate(result):
   for i, r in enumerate(result):
     if r == -1:
     if r == -1:
-      print """
+      print("""
 test.%(i)d:
 test.%(i)d:
   ; Skip this lane, its value is undef.
   ; Skip this lane, its value is undef.
   br label %%test.%(next_i)d
   br label %%test.%(next_i)d
-""" % dict(subst, i=i, next_i=i + 1)
+""" % dict(subst, i=i, next_i=i + 1))
     else:
     else:
-      print """
+      print("""
 test.%(i)d:
 test.%(i)d:
   %%v.%(i)d = extractelement <%(N)d x %(IT)s> %%v.cast, i32 %(i)d
   %%v.%(i)d = extractelement <%(N)d x %(IT)s> %%v.cast, i32 %(i)d
   %%cmp.%(i)d = icmp ne %(IT)s %%v.%(i)d, %(r)d
   %%cmp.%(i)d = icmp ne %(IT)s %%v.%(i)d, %(r)d
@@ -238,9 +240,9 @@ die.%(i)d:
   call i32 @write(i32 2, i8* %%str.ptr, i32 %%length.%(i)d)
   call i32 @write(i32 2, i8* %%str.ptr, i32 %%length.%(i)d)
   call void @llvm.trap()
   call void @llvm.trap()
   unreachable
   unreachable
-""" % dict(subst, i=i, next_i=i + 1, r=r)
+""" % dict(subst, i=i, next_i=i + 1, r=r))
 
 
-  print """
+  print("""
 test.%d:
 test.%d:
   ret i32 0
   ret i32 0
 }
 }
@@ -249,7 +251,7 @@ declare i32 @strlen(i8*)
 declare i32 @write(i32, i8*, i32)
 declare i32 @write(i32, i8*, i32)
 declare i32 @sprintf(i8*, i8*, ...)
 declare i32 @sprintf(i8*, i8*, ...)
 declare void @llvm.trap() noreturn nounwind
 declare void @llvm.trap() noreturn nounwind
-""" % (len(result),)
+""" % (len(result),))
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':
   main()
   main()

+ 9 - 8
utils/shuffle_select_fuzz_tester.py

@@ -13,6 +13,7 @@ Take the output IR printed to stdout, compile it to an executable using whatever
 set of transforms you want to test, and run the program. If it crashes, it found
 set of transforms you want to test, and run the program. If it crashes, it found
 a bug (an error message with the expected and actual result is printed).
 a bug (an error message with the expected and actual result is printed).
 """
 """
+from __future__ import print_function
 
 
 import random
 import random
 import uuid
 import uuid
@@ -145,7 +146,7 @@ class ShufInstr(Instruction):
 
 
   def calc_value(self):
   def calc_value(self):
     if self.value != None:
     if self.value != None:
-      print 'Trying to calculate the value of a shuffle instruction twice'
+      print('Trying to calculate the value of a shuffle instruction twice')
       exit(1)
       exit(1)
 
 
     result = []
     result = []
@@ -179,7 +180,7 @@ class SelectInstr(Instruction):
 
 
   def calc_value(self):
   def calc_value(self):
     if self.value != None:
     if self.value != None:
-      print 'Trying to calculate the value of a select instruction twice'
+      print('Trying to calculate the value of a select instruction twice')
       exit(1)
       exit(1)
 
 
     result = []
     result = []
@@ -343,7 +344,7 @@ def main():
                       help='Choose specific number of vector elements to be tested. (default: random)')
                       help='Choose specific number of vector elements to be tested. (default: random)')
   args = parser.parse_args()
   args = parser.parse_args()
 
 
-  print '; The seed used for this test is ' + args.seed
+  print('; The seed used for this test is ' + args.seed)
 
 
   assert args.min_num_inputs < args.max_num_inputs , "Minimum value greater than maximum."
   assert args.min_num_inputs < args.max_num_inputs , "Minimum value greater than maximum."
   assert args.type in [None, 'i8', 'i16', 'i32', 'i64', 'f32', 'f64'], "Illegal type."
   assert args.type in [None, 'i8', 'i16', 'i32', 'i64', 'f32', 'f64'], "Illegal type."
@@ -362,14 +363,14 @@ def main():
 
 
   # print the actual test function by dumping the generated instructions.
   # print the actual test function by dumping the generated instructions.
   insts_str = ''.join([inst.dump() for inst in insts])
   insts_str = ''.join([inst.dump() for inst in insts])
-  print test_template.format(ty = ty.dump(), inputs = inputs_str,
-                             instructions = insts_str, last_name = res.name)
+  print(test_template.format(ty = ty.dump(), inputs = inputs_str,
+                             instructions = insts_str, last_name = res.name))
 
 
   # Print the error message templates as global strings
   # Print the error message templates as global strings
   for i in range(len(res.value)):
   for i in range(len(res.value)):
     pad = ''.join(['\\00']*(31 - len(str(i)) - len(str(res.value[i]))))
     pad = ''.join(['\\00']*(31 - len(str(i)) - len(str(res.value[i]))))
-    print error_template.format(lane = str(i), exp = str(res.value[i]),
-                                padding = pad)
+    print(error_template.format(lane = str(i), exp = str(res.value[i]),
+                                padding = pad))
 
 
   # Prepare the runtime checks and failure handlers.
   # Prepare the runtime checks and failure handlers.
   scalar_ty = ty.get_scalar_type()
   scalar_ty = ty.get_scalar_type()
@@ -395,7 +396,7 @@ def main():
   inputs_values = [', '.join([scalar_ty.dump() + ' ' + str(i) for i in inp]) for inp in inputs_values]
   inputs_values = [', '.join([scalar_ty.dump() + ' ' + str(i) for i in inp]) for inp in inputs_values]
   inputs = ', '.join([ty.dump() + ' <' + inp + '>' for inp in inputs_values])
   inputs = ', '.join([ty.dump() + ' <' + inp + '>' for inp in inputs_values])
 
 
-  print main_template.format(ty = ty.dump(), inputs = inputs, check_die = check_die)
+  print(main_template.format(ty = ty.dump(), inputs = inputs, check_die = check_die))
 
 
 
 
 if __name__ == '__main__':
 if __name__ == '__main__':

+ 21 - 19
utils/unicode-case-fold.py

@@ -17,6 +17,8 @@ Right now this generates a function which implements simple case folding (C+S
 entries).
 entries).
 """
 """
 
 
+from __future__ import print_function
+
 import sys
 import sys
 import re
 import re
 import urllib2
 import urllib2
@@ -116,22 +118,22 @@ f.close()
 
 
 dump_block(current_block)
 dump_block(current_block)
 
 
-print '//===---------- Support/UnicodeCaseFold.cpp -------------------------------===//'
-print '//'
-print '// This file was generated by utils/unicode-case-fold.py from the Unicode'
-print '// case folding database at'
-print '//   ', sys.argv[1]
-print '//'
-print '// To regenerate this file, run:'
-print '//   utils/unicode-case-fold.py \\'
-print '//     "{}" \\'.format(sys.argv[1])
-print '//     > lib/Support/UnicodeCaseFold.cpp'
-print '//'
-print '//===----------------------------------------------------------------------===//'
-print ''
-print '#include "llvm/Support/Unicode.h"'
-print ''
-print "int llvm::sys::unicode::foldCharSimple(int C) {"
-print body
-print "  return C;"
-print "}"
+print('//===---------- Support/UnicodeCaseFold.cpp -------------------------------===//')
+print('//')
+print('// This file was generated by utils/unicode-case-fold.py from the Unicode')
+print('// case folding database at')
+print('//   ', sys.argv[1])
+print('//')
+print('// To regenerate this file, run:')
+print('//   utils/unicode-case-fold.py \\')
+print('//     "{}" \\'.format(sys.argv[1]))
+print('//     > lib/Support/UnicodeCaseFold.cpp')
+print('//')
+print('//===----------------------------------------------------------------------===//')
+print('')
+print('#include "llvm/Support/Unicode.h"')
+print('')
+print("int llvm::sys::unicode::foldCharSimple(int C) {")
+print(body)
+print("  return C;")
+print("}")

+ 12 - 10
utils/update_analyze_test_checks.py

@@ -29,6 +29,8 @@ The script is designed to make adding checks to a test case fast, it is *not*
 designed to be authoratitive about what constitutes a good test!
 designed to be authoratitive about what constitutes a good test!
 """
 """
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import itertools
 import itertools
 import os         # Used to advertise this file's name ("autogenerated_note").
 import os         # Used to advertise this file's name ("autogenerated_note").
@@ -66,12 +68,12 @@ def main():
 
 
   opt_basename = os.path.basename(args.opt_binary)
   opt_basename = os.path.basename(args.opt_binary)
   if (opt_basename != "opt"):
   if (opt_basename != "opt"):
-    print >>sys.stderr, 'ERROR: Unexpected opt name: ' + opt_basename
+    print('ERROR: Unexpected opt name: ' + opt_basename, file=sys.stderr)
     sys.exit(1)
     sys.exit(1)
 
 
   for test in args.tests:
   for test in args.tests:
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Scanning for RUN lines in test file: %s' % (test,)
+      print('Scanning for RUN lines in test file: %s' % (test,), file=sys.stderr)
     with open(test) as f:
     with open(test) as f:
       input_lines = [l.rstrip() for l in f]
       input_lines = [l.rstrip() for l in f]
 
 
@@ -85,20 +87,20 @@ def main():
         run_lines.append(l)
         run_lines.append(l)
 
 
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Found %d RUN lines:' % (len(run_lines),)
+      print('Found %d RUN lines:' % (len(run_lines),), file=sys.stderr)
       for l in run_lines:
       for l in run_lines:
-        print >>sys.stderr, '  RUN: ' + l
+        print('  RUN: ' + l, file=sys.stderr)
 
 
     prefix_list = []
     prefix_list = []
     for l in run_lines:
     for l in run_lines:
       (tool_cmd, filecheck_cmd) = tuple([cmd.strip() for cmd in l.split('|', 1)])
       (tool_cmd, filecheck_cmd) = tuple([cmd.strip() for cmd in l.split('|', 1)])
 
 
       if not tool_cmd.startswith(opt_basename + ' '):
       if not tool_cmd.startswith(opt_basename + ' '):
-        print >>sys.stderr, 'WARNING: Skipping non-%s RUN line: %s' % (opt_basename, l)
+        print('WARNING: Skipping non-%s RUN line: %s' % (opt_basename, l), file=sys.stderr)
         continue
         continue
 
 
       if not filecheck_cmd.startswith('FileCheck '):
       if not filecheck_cmd.startswith('FileCheck '):
-        print >>sys.stderr, 'WARNING: Skipping non-FileChecked RUN line: ' + l
+        print('WARNING: Skipping non-FileChecked RUN line: ' + l, file=sys.stderr)
         continue
         continue
 
 
       tool_cmd_args = tool_cmd[len(opt_basename):].strip()
       tool_cmd_args = tool_cmd[len(opt_basename):].strip()
@@ -119,8 +121,8 @@ def main():
         func_dict.update({prefix: dict()})
         func_dict.update({prefix: dict()})
     for prefixes, opt_args in prefix_list:
     for prefixes, opt_args in prefix_list:
       if args.verbose:
       if args.verbose:
-        print >>sys.stderr, 'Extracted opt cmd: ' + opt_basename + ' ' + opt_args
-        print >>sys.stderr, 'Extracted FileCheck prefixes: ' + str(prefixes)
+        print('Extracted opt cmd: ' + opt_basename + ' ' + opt_args, file=sys.stderr)
+        print('Extracted FileCheck prefixes: ' + str(prefixes), file=sys.stderr)
 
 
       raw_tool_outputs = common.invoke_tool(args.opt_binary, opt_args, test)
       raw_tool_outputs = common.invoke_tool(args.opt_binary, opt_args, test)
 
 
@@ -134,7 +136,7 @@ def main():
     is_in_function_start = False
     is_in_function_start = False
     prefix_set = set([prefix for prefixes, _ in prefix_list for prefix in prefixes])
     prefix_set = set([prefix for prefixes, _ in prefix_list for prefix in prefixes])
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Rewriting FileCheck prefixes: %s' % (prefix_set,)
+      print('Rewriting FileCheck prefixes: %s' % (prefix_set,), file=sys.stderr)
     output_lines = []
     output_lines = []
     output_lines.append(autogenerated_note)
     output_lines.append(autogenerated_note)
 
 
@@ -181,7 +183,7 @@ def main():
       is_in_function = is_in_function_start = True
       is_in_function = is_in_function_start = True
 
 
     if args.verbose:
     if args.verbose:
-      print>>sys.stderr, 'Writing %d lines to %s...' % (len(output_lines), test)
+      print('Writing %d lines to %s...' % (len(output_lines), test), file=sys.stderr)
 
 
     with open(test, 'wb') as f:
     with open(test, 'wb') as f:
       f.writelines([l + '\n' for l in output_lines])
       f.writelines([l + '\n' for l in output_lines])

+ 12 - 10
utils/update_llc_test_checks.py

@@ -7,6 +7,8 @@ FileCheck patterns. It can either update all of the tests in the file or
 a single test function.
 a single test function.
 """
 """
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import os         # Used to advertise this file's name ("autogenerated_note").
 import os         # Used to advertise this file's name ("autogenerated_note").
 import string
 import string
@@ -42,7 +44,7 @@ def main():
 
 
   for test in args.tests:
   for test in args.tests:
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Scanning for RUN lines in test file: %s' % (test,)
+      print('Scanning for RUN lines in test file: %s' % (test,), file=sys.stderr)
     with open(test) as f:
     with open(test) as f:
       input_lines = [l.rstrip() for l in f]
       input_lines = [l.rstrip() for l in f]
 
 
@@ -63,9 +65,9 @@ def main():
         run_lines.append(l)
         run_lines.append(l)
 
 
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Found %d RUN lines:' % (len(run_lines),)
+      print('Found %d RUN lines:' % (len(run_lines),), file=sys.stderr)
       for l in run_lines:
       for l in run_lines:
-        print >>sys.stderr, '  RUN: ' + l
+        print('  RUN: ' + l, file=sys.stderr)
 
 
     run_list = []
     run_list = []
     for l in run_lines:
     for l in run_lines:
@@ -81,11 +83,11 @@ def main():
       if len(commands) > 1:
       if len(commands) > 1:
         filecheck_cmd = commands[1]
         filecheck_cmd = commands[1]
       if not llc_cmd.startswith('llc '):
       if not llc_cmd.startswith('llc '):
-        print >>sys.stderr, 'WARNING: Skipping non-llc RUN line: ' + l
+        print('WARNING: Skipping non-llc RUN line: ' + l, file=sys.stderr)
         continue
         continue
 
 
       if not filecheck_cmd.startswith('FileCheck '):
       if not filecheck_cmd.startswith('FileCheck '):
-        print >>sys.stderr, 'WARNING: Skipping non-FileChecked RUN line: ' + l
+        print('WARNING: Skipping non-FileChecked RUN line: ' + l, file=sys.stderr)
         continue
         continue
 
 
       llc_cmd_args = llc_cmd[len('llc'):].strip()
       llc_cmd_args = llc_cmd[len('llc'):].strip()
@@ -107,12 +109,12 @@ def main():
         func_dict.update({prefix: dict()})
         func_dict.update({prefix: dict()})
     for prefixes, llc_args, triple_in_cmd in run_list:
     for prefixes, llc_args, triple_in_cmd in run_list:
       if args.verbose:
       if args.verbose:
-        print >>sys.stderr, 'Extracted LLC cmd: llc ' + llc_args
-        print >>sys.stderr, 'Extracted FileCheck prefixes: ' + str(prefixes)
+        print('Extracted LLC cmd: llc ' + llc_args, file=sys.stderr)
+        print('Extracted FileCheck prefixes: ' + str(prefixes), file=sys.stderr)
 
 
       raw_tool_output = common.invoke_tool(args.llc_binary, llc_args, test)
       raw_tool_output = common.invoke_tool(args.llc_binary, llc_args, test)
       if not (triple_in_cmd or triple_in_ir):
       if not (triple_in_cmd or triple_in_ir):
-        print >>sys.stderr, "Cannot find a triple. Assume 'x86'"
+        print("Cannot find a triple. Assume 'x86'", file=sys.stderr)
 
 
       asm.build_function_body_dictionary_for_triple(args, raw_tool_output,
       asm.build_function_body_dictionary_for_triple(args, raw_tool_output,
           triple_in_cmd or triple_in_ir or 'x86', prefixes, func_dict)
           triple_in_cmd or triple_in_ir or 'x86', prefixes, func_dict)
@@ -122,7 +124,7 @@ def main():
     func_name = None
     func_name = None
     prefix_set = set([prefix for p in run_list for prefix in p[0]])
     prefix_set = set([prefix for p in run_list for prefix in p[0]])
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Rewriting FileCheck prefixes: %s' % (prefix_set,)
+      print('Rewriting FileCheck prefixes: %s' % (prefix_set,), file=sys.stderr)
     output_lines = []
     output_lines = []
     output_lines.append(autogenerated_note)
     output_lines.append(autogenerated_note)
 
 
@@ -167,7 +169,7 @@ def main():
       is_in_function = is_in_function_start = True
       is_in_function = is_in_function_start = True
 
 
     if args.verbose:
     if args.verbose:
-      print>>sys.stderr, 'Writing %d lines to %s...' % (len(output_lines), test)
+      print('Writing %d lines to %s...' % (len(output_lines), test), file=sys.stderr)
 
 
     with open(test, 'wb') as f:
     with open(test, 'wb') as f:
       f.writelines([l + '\n' for l in output_lines])
       f.writelines([l + '\n' for l in output_lines])

+ 12 - 10
utils/update_test_checks.py

@@ -29,6 +29,8 @@ The script is designed to make adding checks to a test case fast, it is *not*
 designed to be authoratitive about what constitutes a good test!
 designed to be authoratitive about what constitutes a good test!
 """
 """
 
 
+from __future__ import print_function
+
 import argparse
 import argparse
 import itertools
 import itertools
 import os         # Used to advertise this file's name ("autogenerated_note").
 import os         # Used to advertise this file's name ("autogenerated_note").
@@ -66,12 +68,12 @@ def main():
 
 
   opt_basename = os.path.basename(args.opt_binary)
   opt_basename = os.path.basename(args.opt_binary)
   if (opt_basename != "opt"):
   if (opt_basename != "opt"):
-    print >>sys.stderr, 'ERROR: Unexpected opt name: ' + opt_basename
+    print('ERROR: Unexpected opt name: ' + opt_basename, file=sys.stderr)
     sys.exit(1)
     sys.exit(1)
 
 
   for test in args.tests:
   for test in args.tests:
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Scanning for RUN lines in test file: %s' % (test,)
+      print('Scanning for RUN lines in test file: %s' % (test,), file=sys.stderr)
     with open(test) as f:
     with open(test) as f:
       input_lines = [l.rstrip() for l in f]
       input_lines = [l.rstrip() for l in f]
 
 
@@ -85,20 +87,20 @@ def main():
         run_lines.append(l)
         run_lines.append(l)
 
 
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Found %d RUN lines:' % (len(run_lines),)
+      print('Found %d RUN lines:' % (len(run_lines),), file=sys.stderr)
       for l in run_lines:
       for l in run_lines:
-        print >>sys.stderr, '  RUN: ' + l
+        print('  RUN: ' + l, file=sys.stderr)
 
 
     prefix_list = []
     prefix_list = []
     for l in run_lines:
     for l in run_lines:
       (tool_cmd, filecheck_cmd) = tuple([cmd.strip() for cmd in l.split('|', 1)])
       (tool_cmd, filecheck_cmd) = tuple([cmd.strip() for cmd in l.split('|', 1)])
 
 
       if not tool_cmd.startswith(opt_basename + ' '):
       if not tool_cmd.startswith(opt_basename + ' '):
-        print >>sys.stderr, 'WARNING: Skipping non-%s RUN line: %s' % (opt_basename, l)
+        print('WARNING: Skipping non-%s RUN line: %s' % (opt_basename, l), file=sys.stderr)
         continue
         continue
 
 
       if not filecheck_cmd.startswith('FileCheck '):
       if not filecheck_cmd.startswith('FileCheck '):
-        print >>sys.stderr, 'WARNING: Skipping non-FileChecked RUN line: ' + l
+        print('WARNING: Skipping non-FileChecked RUN line: ' + l, file=sys.stderr)
         continue
         continue
 
 
       tool_cmd_args = tool_cmd[len(opt_basename):].strip()
       tool_cmd_args = tool_cmd[len(opt_basename):].strip()
@@ -119,8 +121,8 @@ def main():
         func_dict.update({prefix: dict()})
         func_dict.update({prefix: dict()})
     for prefixes, opt_args in prefix_list:
     for prefixes, opt_args in prefix_list:
       if args.verbose:
       if args.verbose:
-        print >>sys.stderr, 'Extracted opt cmd: ' + opt_basename + ' ' + opt_args
-        print >>sys.stderr, 'Extracted FileCheck prefixes: ' + str(prefixes)
+        print('Extracted opt cmd: ' + opt_basename + ' ' + opt_args, file=sys.stderr)
+        print('Extracted FileCheck prefixes: ' + str(prefixes), file=sys.stderr)
 
 
       raw_tool_output = common.invoke_tool(args.opt_binary, opt_args, test)
       raw_tool_output = common.invoke_tool(args.opt_binary, opt_args, test)
       common.build_function_body_dictionary(
       common.build_function_body_dictionary(
@@ -131,7 +133,7 @@ def main():
     is_in_function_start = False
     is_in_function_start = False
     prefix_set = set([prefix for prefixes, _ in prefix_list for prefix in prefixes])
     prefix_set = set([prefix for prefixes, _ in prefix_list for prefix in prefixes])
     if args.verbose:
     if args.verbose:
-      print >>sys.stderr, 'Rewriting FileCheck prefixes: %s' % (prefix_set,)
+      print('Rewriting FileCheck prefixes: %s' % (prefix_set,), file=sys.stderr)
     output_lines = []
     output_lines = []
     output_lines.append(autogenerated_note)
     output_lines.append(autogenerated_note)
 
 
@@ -178,7 +180,7 @@ def main():
       is_in_function = is_in_function_start = True
       is_in_function = is_in_function_start = True
 
 
     if args.verbose:
     if args.verbose:
-      print>>sys.stderr, 'Writing %d lines to %s...' % (len(output_lines), test)
+      print('Writing %d lines to %s...' % (len(output_lines), test), file=sys.stderr)
 
 
     with open(test, 'wb') as f:
     with open(test, 'wb') as f:
       f.writelines([l + '\n' for l in output_lines])
       f.writelines([l + '\n' for l in output_lines])

+ 7 - 6
utils/wciia.py

@@ -20,6 +20,7 @@ limitations:
 
 
 """
 """
 
 
+from __future__ import print_function
 import os
 import os
 
 
 code_owners = {}
 code_owners = {}
@@ -97,7 +98,7 @@ def find_owners(fpath):
 import sys
 import sys
 
 
 if len(sys.argv) < 2:
 if len(sys.argv) < 2:
-	print "usage " + sys.argv[0] + " file_or_folder"  
+	print("usage " + sys.argv[0] + " file_or_folder")
 	exit(-1)
 	exit(-1)
 	
 	
 # the path we are checking
 # the path we are checking
@@ -105,13 +106,13 @@ path = str(sys.argv[1])
 
 
 # check if this is real path
 # check if this is real path
 if not os.path.exists(path):
 if not os.path.exists(path):
-	print "path (" + path + ") does not exist"
+	print("path (" + path + ") does not exist")
 	exit(-1)
 	exit(-1)
 	
 	
 owners_name = find_owners(path)
 owners_name = find_owners(path)
 
 
 # be grammatically correct
 # be grammatically correct
-print "The owner(s) of the (" + path + ") is(are) : " + str(owners_name)
+print("The owner(s) of the (" + path + ") is(are) : " + str(owners_name))
 
 
 exit(0)
 exit(0)
 
 
@@ -119,7 +120,7 @@ exit(0)
 # not yet used 
 # not yet used 
 root = "."
 root = "."
 for dir,subdirList,fileList in os.walk( root , topdown=False ) :
 for dir,subdirList,fileList in os.walk( root , topdown=False ) :
-   print "dir :" , dir
+   print("dir :" , dir)
    for fname in fileList :
    for fname in fileList :
-      print "-" , fname
-   print
+      print("-" , fname)
+   print()