summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorMassimiliano Culpo <massimiliano.culpo@gmail.com>2023-06-30 15:08:11 +0200
committerTodd Gamblin <tgamblin@llnl.gov>2023-08-15 15:54:37 -0700
commit006e69265e2460407af4fa416a0f2ee5fe85f7fc (patch)
treedb9a37f1d0e5428657fdddfe24644280170fb159 /lib
parenteaec3062a1f317e2216e15942e3011c56bdf9d0b (diff)
downloadspack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.gz
spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.bz2
spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.tar.xz
spack-006e69265e2460407af4fa416a0f2ee5fe85f7fc.zip
Optimize grounding of "can_inherit_flags"
Diffstat (limited to 'lib')
-rw-r--r--lib/spack/spack/solver/concretize.lp9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/spack/spack/solver/concretize.lp b/lib/spack/spack/solver/concretize.lp
index f1126f9fb0..307a8719a8 100644
--- a/lib/spack/spack/solver/concretize.lp
+++ b/lib/spack/spack/solver/concretize.lp
@@ -1148,12 +1148,15 @@ error(100, "Compiler {1}@{2} requested for {0} cannot be found. Set install_miss
% propagate flags when compiler match
can_inherit_flags(PackageNode, DependencyNode, FlagType)
+ :- same_compiler(PackageNode, DependencyNode),
+ not attr("node_flag_set", DependencyNode, FlagType, _),
+ flag_type(FlagType).
+
+same_compiler(PackageNode, DependencyNode)
:- depends_on(PackageNode, DependencyNode),
node_compiler(PackageNode, CompilerID),
node_compiler(DependencyNode, CompilerID),
- not attr("node_flag_set", DependencyNode, FlagType, _),
- compiler_id(CompilerID),
- flag_type(FlagType).
+ compiler_id(CompilerID).
node_flag_inherited(DependencyNode, FlagType, Flag)
:- attr("node_flag_set", PackageNode, FlagType, Flag),