def BytecodeToPollyCanonicalized(source: str) -> str: process = opt.Exec(["-polly-canonicalize", "-S", "-", "-o", "-"], stdin=source) if process.returncode: raise opt.OptException("Error in canonicalization opt execution (%d)" % process.returncode) return process.stdout
def test_LlvmPipeline(tempdir: pathlib.Path): """End-to-end test.""" with open(tempdir / "foo.c", "w") as f: f.write( """ int main() { int x = 0; if (x != 0) x = 5; // dead code return x; } """ ) # Generate bytecode. p = clang.Exec( [ str(tempdir / "foo.c"), "-o", str(tempdir / "foo.ll"), "-S", "-xc++", "-emit-llvm", "-c", "-O0", ] ) assert not p.stderr assert not p.stdout assert not p.returncode assert (tempdir / "foo.ll").is_file() # Run an optimization pass. p = opt.Exec( [str(tempdir / "foo.ll"), "-o", str(tempdir / "foo2.ll"), "-S", "-dce"] ) assert not p.stderr assert not p.stdout assert not p.returncode assert (tempdir / "foo2.ll").is_file() # Compile bytecode to LLVM IR. p = clang.Exec([str(tempdir / "foo2.ll"), "-o", str(tempdir / "foo")]) assert not p.stderr assert not p.stdout assert not p.returncode assert (tempdir / "foo").is_file() subprocess.check_call([str(tempdir / "foo")])
def BytecodeToPollyCanonicalized(source: str) -> str: process = opt.Exec( ["-polly-canonicalize", "-S", "-", "-o", "-"], stdin=source ) if process.returncode: