Remove :map: sym-dep generation
This was incorrect to begin with---it does not make sense that an input mapping should depend upon the identifier that it maps to, in the sense that we make use of these dependencies. If we add weak symbol references in the future, then this can be reintroduced. By removing this, we free tameld from having to perform the check itself. .rev-xmlo bumped to force rebuilding of object files since the linker now expects that no such dependencies will exist within them.main
parent
8a2cc28ddb
commit
1f24cfdf25
|
@ -1,4 +1,4 @@
|
|||
# This number is incremented for every compiler change to force rebuilding
|
||||
# of xmlo files.
|
||||
3
|
||||
4
|
||||
|
||||
|
|
12
RELEASES.md
12
RELEASES.md
|
@ -14,6 +14,18 @@ commits that introduce the changes. To make a new release, run
|
|||
`tools/mkrelease`, which will handle updating the heading for you.
|
||||
|
||||
|
||||
NEXT
|
||||
====
|
||||
Compiler
|
||||
--------
|
||||
- Input mappings will no longer emit the destination param as a dependency.
|
||||
|
||||
Linker
|
||||
------
|
||||
- Remove exception for input map dependency processing (now that compiler no
|
||||
longer emits such a dependency).
|
||||
|
||||
|
||||
v18.0.3 (2021-07-21)
|
||||
====================
|
||||
This release significantly improves the performance of executables
|
||||
|
|
|
@ -348,9 +348,7 @@
|
|||
|
||||
|
||||
<template match="lvm:pass" mode="preproc:depgen" priority="5">
|
||||
<preproc:sym-dep name=":map:{@name}">
|
||||
<preproc:sym-ref name="{@name}" lax="true" />
|
||||
</preproc:sym-dep>
|
||||
<preproc:sym-dep name=":map:{@name}" />
|
||||
</template>
|
||||
|
||||
<template match="lvm:pass[ root(.)/@lvmc:type = 'retmap' ]"
|
||||
|
@ -408,9 +406,7 @@
|
|||
<template match="lvm:map[ @from
|
||||
and root(.)/@lvmc:type = 'map' ]"
|
||||
mode="preproc:depgen" priority="5">
|
||||
<preproc:sym-dep name=":map:{@to}">
|
||||
<preproc:sym-ref name="{@to}" lax="true" />
|
||||
</preproc:sym-dep>
|
||||
<preproc:sym-dep name=":map:{@to}" />
|
||||
</template>
|
||||
|
||||
<template match="lvm:map[ @from
|
||||
|
@ -632,9 +628,7 @@
|
|||
</template>
|
||||
|
||||
<template match="lvm:map[ * ]" mode="preproc:depgen" priority="5">
|
||||
<preproc:sym-dep name=":map:{@to}">
|
||||
<preproc:sym-ref name="{@to}" lax="true" />
|
||||
</preproc:sym-dep>
|
||||
<preproc:sym-dep name=":map:{@to}" />
|
||||
</template>
|
||||
|
||||
<template match="lvm:map[ *
|
||||
|
|
|
@ -212,15 +212,8 @@ where
|
|||
}
|
||||
|
||||
XmloEvent::SymDeps(sym, deps) => {
|
||||
// Maps should not pull in symbols since we may end up
|
||||
// mapping to params that are never actually used.
|
||||
// TODO: Can these just be removed from the xmlo files
|
||||
// rather than adding exceptions?
|
||||
// TODO: No string comparison.
|
||||
if !sym.starts_with(":map:") {
|
||||
for dep_sym in deps {
|
||||
self.add_dep_lookup(sym, dep_sym);
|
||||
}
|
||||
for dep_sym in deps {
|
||||
self.add_dep_lookup(sym, dep_sym);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -450,22 +443,6 @@ mod test {
|
|||
assert!(sut.has_dep(node_from, node_to2));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn ignores_map_sym_deps() {
|
||||
let mut sut = Sut::new();
|
||||
|
||||
let sym_from = symbol_dummy!(1, ":map:sym");
|
||||
let sym_to = symbol_dummy!(2, "to");
|
||||
|
||||
let evs = vec![Ok(XmloEvent::SymDeps(&sym_from, vec![&sym_to]))];
|
||||
|
||||
let _ = sut
|
||||
.import_xmlo(evs.into_iter(), SutState::new())
|
||||
.expect("unexpected failure");
|
||||
|
||||
assert!(sut.lookup(&sym_from).is_none());
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn sym_decl_with_src_not_added_and_populates_found() {
|
||||
let mut sut = Sut::new();
|
||||
|
|
Loading…
Reference in New Issue