Skip to content

Commit 18144b1

Browse files
committed
auto merge of #8546 : jld/rust/discrim-symbol-rm, r=pcwalton
Given that bootstrapping and running the testsuite works without exporting discriminant values as global constants, I conclude that they're unused and can be removed.
2 parents 0c6cc11 + 46672d2 commit 18144b1

File tree

2 files changed

+0
-66
lines changed

2 files changed

+0
-66
lines changed

src/librustc/metadata/encoder.rs

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -290,14 +290,6 @@ fn encode_symbol(ecx: &EncodeContext,
290290
ebml_w.end_tag();
291291
}
292292

293-
fn encode_discriminant(ecx: &EncodeContext,
294-
ebml_w: &mut writer::Encoder,
295-
id: NodeId) {
296-
ebml_w.start_tag(tag_items_data_item_symbol);
297-
ebml_w.writer.write(ecx.discrim_symbols.get_copy(&id).as_bytes());
298-
ebml_w.end_tag();
299-
}
300-
301293
fn encode_disr_val(_: &EncodeContext,
302294
ebml_w: &mut writer::Encoder,
303295
disr_val: uint) {
@@ -344,7 +336,6 @@ fn encode_enum_variant_info(ecx: &EncodeContext,
344336
}
345337
ast::tuple_variant_kind(_) | ast::struct_variant_kind(_) => {}
346338
}
347-
encode_discriminant(ecx, ebml_w, variant.node.id);
348339
if vi[i].disr_val != disr_val {
349340
encode_disr_val(ecx, ebml_w, vi[i].disr_val);
350341
disr_val = vi[i].disr_val;

src/librustc/middle/trans/base.rs

Lines changed: 0 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ use syntax::codemap::span;
8484
use syntax::parse::token;
8585
use syntax::parse::token::{special_idents};
8686
use syntax::print::pprust::stmt_to_str;
87-
use syntax::visit;
8887
use syntax::{ast, ast_util, codemap, ast_map};
8988
use syntax::abi::{X86, X86_64, Arm, Mips};
9089

@@ -2621,57 +2620,6 @@ pub fn register_method(ccx: @mut CrateContext,
26212620
llfn
26222621
}
26232622

2624-
// The constant translation pass.
2625-
pub fn trans_constant(ccx: &mut CrateContext, it: @ast::item) {
2626-
let _icx = push_ctxt("trans_constant");
2627-
match it.node {
2628-
ast::item_enum(ref enum_definition, _) => {
2629-
let vi = ty::enum_variants(ccx.tcx,
2630-
ast::def_id { crate: ast::LOCAL_CRATE,
2631-
node: it.id });
2632-
let mut i = 0;
2633-
let path = item_path(ccx, &it.id);
2634-
for variant in (*enum_definition).variants.iter() {
2635-
let p = vec::append(path.clone(), [
2636-
path_name(variant.node.name),
2637-
path_name(special_idents::descrim)
2638-
]);
2639-
let s = mangle_exported_name(ccx, p, ty::mk_int()).to_managed();
2640-
let disr_val = vi[i].disr_val;
2641-
note_unique_llvm_symbol(ccx, s);
2642-
let discrim_gvar = do s.with_c_str |buf| {
2643-
unsafe {
2644-
llvm::LLVMAddGlobal(ccx.llmod, ccx.int_type.to_ref(), buf)
2645-
}
2646-
};
2647-
unsafe {
2648-
llvm::LLVMSetInitializer(discrim_gvar, C_uint(ccx, disr_val));
2649-
llvm::LLVMSetGlobalConstant(discrim_gvar, True);
2650-
}
2651-
ccx.discrims.insert(
2652-
local_def(variant.node.id), discrim_gvar);
2653-
ccx.discrim_symbols.insert(variant.node.id, s);
2654-
i += 1;
2655-
}
2656-
}
2657-
_ => ()
2658-
}
2659-
}
2660-
2661-
struct TransConstantsVisitor { ccx: @mut CrateContext }
2662-
2663-
impl visit::Visitor<()> for TransConstantsVisitor {
2664-
fn visit_item(&mut self, i:@ast::item, _:()) {
2665-
trans_constant(self.ccx, i);
2666-
visit::walk_item(self, i, ());
2667-
}
2668-
}
2669-
2670-
pub fn trans_constants(ccx: @mut CrateContext, crate: &ast::Crate) {
2671-
let mut v = TransConstantsVisitor { ccx: ccx };
2672-
visit::walk_crate(&mut v, crate, ());
2673-
}
2674-
26752623
pub fn vp2i(cx: @mut Block, v: ValueRef) -> ValueRef {
26762624
let ccx = cx.ccx();
26772625
return PtrToInt(cx, v, ccx.int_type);
@@ -3050,11 +2998,6 @@ pub fn trans_crate(sess: session::Session,
30502998
link_meta,
30512999
analysis.reachable);
30523000

3053-
{
3054-
let _icx = push_ctxt("data");
3055-
trans_constants(ccx, crate);
3056-
}
3057-
30583001
{
30593002
let _icx = push_ctxt("text");
30603003
trans_mod(ccx, &crate.module);

0 commit comments

Comments
 (0)