Skip to content

Commit 140a2f3

Browse files
celinvaltedinski
authored andcommitted
Turn goto-c backend library into a module. (rust-lang#871)
* Change backend library to be a module in the compiler Also rename from rustc_codegen_kani to codegen_cprover_gotoc Keeping cprover dependencies separate in case we ever decided to add another backend.
1 parent eca2c52 commit 140a2f3

File tree

29 files changed

+100
-120
lines changed

29 files changed

+100
-120
lines changed

Cargo.lock

Lines changed: 12 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -417,9 +417,20 @@ name = "kani-compiler"
417417
version = "0.1.0"
418418
dependencies = [
419419
"atty",
420+
"bitflags",
420421
"clap",
422+
"cprover_bindings",
423+
"cstr",
421424
"kani_queries",
422-
"rustc_codegen_kani",
425+
"kani_restrictions",
426+
"libc",
427+
"measureme",
428+
"num",
429+
"rustc-demangle",
430+
"serde",
431+
"serde_json",
432+
"smallvec",
433+
"snap",
423434
"tracing",
424435
"tracing-subscriber",
425436
"tracing-tree",
@@ -896,26 +907,6 @@ version = "1.1.0"
896907
source = "registry+https://github.com/rust-lang/crates.io-index"
897908
checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2"
898909

899-
[[package]]
900-
name = "rustc_codegen_kani"
901-
version = "0.0.0"
902-
dependencies = [
903-
"bitflags",
904-
"cprover_bindings",
905-
"cstr",
906-
"kani_queries",
907-
"kani_restrictions",
908-
"libc",
909-
"measureme",
910-
"num",
911-
"rustc-demangle",
912-
"serde",
913-
"serde_json",
914-
"smallvec",
915-
"snap",
916-
"tracing",
917-
]
918-
919910
[[package]]
920911
name = "rustdoc"
921912
version = "0.0.0"

src/kani-compiler/Cargo.toml

Lines changed: 18 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,13 +9,30 @@ license = "MIT OR Apache-2.0"
99

1010
[dependencies]
1111
atty = "0.2.14"
12+
bitflags = { version = "1.0", optional = true }
13+
cbmc = { path = "../../cprover_bindings", package = "cprover_bindings", optional = true }
1214
clap = "2.33.0"
15+
cstr = { version = "0.2", optional = true }
1316
kani_queries = {path = "kani_queries"}
14-
rustc_codegen_kani = {path = "rustc_codegen_kani"}
17+
kani_restrictions = { path = "../../library/kani_restrictions", optional = true }
18+
libc = { version = "0.2", optional = true }
19+
measureme = { version = "9.1.0", optional = true }
20+
num = { version = "0.4.0", optional = true }
21+
rustc-demangle = { version = "0.1.21", optional = true }
22+
serde = { version = "1", optional = true }
23+
serde_json = { version = "1", optional = true }
24+
smallvec = { version = "1.6.1", features = ["union", "may_dangle"], optional = true }
25+
snap = { version = "1", optional = true }
1526
tracing = {version = "0.1", features = ["max_level_trace", "release_max_level_info"]}
1627
tracing-subscriber = {version = "0.3.8", features = ["env-filter", "json", "fmt"]}
1728
tracing-tree = "0.2.0"
1829

30+
# Future proofing: enable backend dependencies using feature.
31+
[features]
32+
default = ['cprover']
33+
cprover = ['bitflags', 'cbmc', 'cstr', 'kani_restrictions', 'libc', 'measureme', 'num', 'rustc-demangle', 'serde',
34+
'serde_json', 'smallvec', 'snap']
35+
1936
[package.metadata.rust-analyzer]
2037
# This package uses rustc crates.
2138
rustc_private=true

src/kani-compiler/rustc_codegen_kani/Cargo.toml

Lines changed: 0 additions & 30 deletions
This file was deleted.

src/kani-compiler/rustc_codegen_kani/src/lib.rs

Lines changed: 0 additions & 38 deletions
This file was deleted.

src/kani-compiler/rustc_codegen_kani/src/codegen/block.rs renamed to src/kani-compiler/src/codegen_cprover_gotoc/codegen/block.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
//! This file contains functions related to codegenning MIR blocks into gotoc
55
6-
use crate::GotocCtx;
6+
use crate::codegen_cprover_gotoc::GotocCtx;
77
use rustc_middle::mir::{BasicBlock, BasicBlockData};
88

99
impl<'tcx> GotocCtx<'tcx> {

src/kani-compiler/rustc_codegen_kani/src/codegen/function.rs renamed to src/kani-compiler/src/codegen_cprover_gotoc/codegen/function.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33

44
//! This file contains functions related to codegenning MIR functions into gotoc
55
6-
use crate::context::metadata::HarnessMetadata;
7-
use crate::GotocCtx;
6+
use crate::codegen_cprover_gotoc::context::metadata::HarnessMetadata;
7+
use crate::codegen_cprover_gotoc::GotocCtx;
88
use cbmc::goto_program::{Expr, Stmt, Symbol};
99
use cbmc::InternString;
1010
use rustc_ast::ast;

src/kani-compiler/rustc_codegen_kani/src/codegen/intrinsic.rs renamed to src/kani-compiler/src/codegen_cprover_gotoc/codegen/intrinsic.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0 OR MIT
33
//! this module handles intrinsics
4-
use crate::GotocCtx;
4+
use crate::codegen_cprover_gotoc::GotocCtx;
55
use cbmc::goto_program::{BuiltinFn, Expr, Location, Stmt, Type};
66
use rustc_middle::mir::Place;
77
use rustc_middle::ty::layout::LayoutOf;

src/kani-compiler/rustc_codegen_kani/src/codegen/operand.rs renamed to src/kani-compiler/src/codegen_cprover_gotoc/codegen/operand.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
22
// SPDX-License-Identifier: Apache-2.0 OR MIT
3-
use crate::utils::slice_fat_ptr;
4-
use crate::GotocCtx;
3+
use crate::codegen_cprover_gotoc::utils::slice_fat_ptr;
4+
use crate::codegen_cprover_gotoc::GotocCtx;
55
use cbmc::goto_program::{Expr, Location, Stmt, Symbol, Type};
66
use cbmc::NO_PRETTY_NAME;
77
use rustc_ast::ast::Mutability;

src/kani-compiler/rustc_codegen_kani/src/codegen/place.rs renamed to src/kani-compiler/src/codegen_cprover_gotoc/codegen/place.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66
//! in [codegen_place] below.
77
88
use super::typ::TypeExt;
9-
use crate::utils::slice_fat_ptr;
10-
use crate::GotocCtx;
9+
use crate::codegen_cprover_gotoc::utils::slice_fat_ptr;
10+
use crate::codegen_cprover_gotoc::GotocCtx;
1111
use cbmc::goto_program::{Expr, Type};
1212
use rustc_hir::Mutability;
1313
use rustc_middle::ty::layout::LayoutOf;

0 commit comments

Comments
 (0)