summaryrefslogtreecommitdiff
path: root/ext/B/B/CC.pm
diff options
context:
space:
mode:
authorVishal Bhatia <vishal@deja.com>1999-07-31 12:08:33 -0700
committerGurusamy Sarathy <gsar@cpan.org>1999-08-02 06:59:09 +0000
commite9a14d94c9b931be6c4d19e6c264464cb1e842cb (patch)
treedccf727d69505a8705b3d504798ccd394b1c0881 /ext/B/B/CC.pm
parentfafe5ef9b0f9552ce3bd6b5ce464911fdd3aaaff (diff)
downloadperl-e9a14d94c9b931be6c4d19e6c264464cb1e842cb.tar.gz
"use constant" in the compiler
Message-ID: <LAONLKLELDJAFAAA@my-deja.com> p4raw-id: //depot/perl@3869
Diffstat (limited to 'ext/B/B/CC.pm')
-rw-r--r--ext/B/B/CC.pm10
1 files changed, 8 insertions, 2 deletions
diff --git a/ext/B/B/CC.pm b/ext/B/B/CC.pm
index 4affda0014..9369464344 100644
--- a/ext/B/B/CC.pm
+++ b/ext/B/B/CC.pm
@@ -101,7 +101,8 @@ sub debug {
if ($debug_runtime) {
warn(@_);
} else {
- runtime(map { chomp; "/* $_ */"} @_);
+ my @tmp=@_;
+ runtime(map { chomp; "/* $_ */"} @tmp);
}
}
@@ -1480,6 +1481,11 @@ sub compile_bblock {
sub cc {
my ($name, $root, $start, @padlist) = @_;
my $op;
+ if($done{$$start}){
+ #warn "repeat=>".ref($start)."$name,\n";#debug
+ $decl->add(sprintf("#define $name %s",$done{$$start}));
+ return;
+ }
init_pp($name);
load_pad(@padlist);
B::Pseudoreg->new_scope;
@@ -1503,7 +1509,7 @@ sub cc {
next if !defined($op) || !$$op || $done{$$op};
#warn "...compiling it\n"; # debug
do {
- $done{$$op} = 1;
+ $done{$$op} = $name;
$op = compile_bblock($op);
if ($need_freetmps && $freetmps_each_bblock) {
runtime("FREETMPS;");