Skip to content

Commit

Permalink
Renaming IntrinsicFunctorInfo
Browse files Browse the repository at this point in the history
  • Loading branch information
Bernhard Scholz authored and Bernhard Scholz committed Sep 15, 2020
1 parent 3396f3c commit 117b2ed
Show file tree
Hide file tree
Showing 5 changed files with 11 additions and 11 deletions.
2 changes: 1 addition & 1 deletion src/FunctorOps.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -154,7 +154,7 @@ using FOp = FunctorOp;
#define VARIADIC_ORDERED(op) \
VARIADIC(op, Signed), VARIADIC(U##op, Unsigned), VARIADIC(F##op, Float), VARIADIC(S##op, Symbol)

const std::vector<IntrinsicFunctor> FUNCTOR_INTRINSICS = {
const std::vector<IntrinsicFunctorInfo> FUNCTOR_INTRINSICS = {
{FUNCTOR_INTRINSIC_PREFIX_NEGATE_NAME, {TAttr::Signed}, TAttr::Signed, FunctorOp::NEG},
{FUNCTOR_INTRINSIC_PREFIX_NEGATE_NAME, {TAttr::Float}, TAttr::Float, FunctorOp::FNEG},

Expand Down
4 changes: 2 additions & 2 deletions src/FunctorOps.h
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,7 @@ enum class FunctorOp {

std::ostream& operator<<(std::ostream& os, FunctorOp op);

struct IntrinsicFunctor {
struct IntrinsicFunctorInfo {
std::string symbol;
std::vector<TypeAttribute> params;
TypeAttribute result;
Expand All @@ -120,7 +120,7 @@ struct IntrinsicFunctor {
bool multipleResults = false;
};

using IntrinsicFunctors = std::vector<std::reference_wrapper<const IntrinsicFunctor>>;
using IntrinsicFunctors = std::vector<std::reference_wrapper<const IntrinsicFunctorInfo>>;
IntrinsicFunctors functorBuiltIn(FunctorOp);
IntrinsicFunctors functorBuiltIn(std::string_view symbol);
IntrinsicFunctors functorBuiltIn(std::string_view symbol, const std::vector<TypeAttribute>& params);
Expand Down
10 changes: 5 additions & 5 deletions src/ast/IntrinsicFunctor.h
Original file line number Diff line number Diff line change
Expand Up @@ -61,12 +61,12 @@ class IntrinsicFunctor : public Functor {
}

/** Get function information */
const souffle::IntrinsicFunctor* getFunctionInfo() const {
const IntrinsicFunctorInfo* getFunctionInfo() const {
return info;
}

/** Set function information */
void setFunctionInfo(const souffle::IntrinsicFunctor& info) {
void setFunctionInfo(const IntrinsicFunctorInfo& info) {
this->info = &info;
}

Expand All @@ -87,8 +87,8 @@ class IntrinsicFunctor : public Functor {
}

protected:
IntrinsicFunctor(std::string op, const souffle::IntrinsicFunctor* info, VecOwn<Argument> args,
SrcLocation loc = {})
IntrinsicFunctor(
std::string op, const IntrinsicFunctorInfo* info, VecOwn<Argument> args, SrcLocation loc = {})
: Functor(std::move(args), std::move(loc)), function(std::move(op)), info(info) {
assert((!info || info->symbol == function) && "functor info must match symbol");
}
Expand All @@ -111,7 +111,7 @@ class IntrinsicFunctor : public Functor {
std::string function;

/** Functor information */
const souffle::IntrinsicFunctor* info = nullptr;
const IntrinsicFunctorInfo* info = nullptr;
};

} // namespace souffle::ast
2 changes: 1 addition & 1 deletion src/ast/analysis/Type.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -352,7 +352,7 @@ TypeConstraint satisfiesOverload(const TypeEnvironment& typeEnv, IntrinsicFuncto
return curr.isAll() || any_of(curr, [&](auto&& t) { return getTypeAttribute(t) == ty; });
};

overloads = filterNot(std::move(overloads), [&](const souffle::IntrinsicFunctor& x) -> bool {
overloads = filterNot(std::move(overloads), [&](const IntrinsicFunctorInfo& x) -> bool {
if (!x.variadic && args.size() != x.params.size()) return true; // arity mismatch?

for (size_t i = 0; i < args.size(); ++i)
Expand Down
4 changes: 2 additions & 2 deletions src/ast/utility/Utils.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -305,7 +305,7 @@ IntrinsicFunctors validOverloads(const analysis::TypeAnalysis& typing, const ast
auto argTys = map(func.getArguments(), typeAttrs);

auto candidates =
filterNot(functorBuiltIn(func.getFunction()), [&](const souffle::IntrinsicFunctor& x) -> bool {
filterNot(functorBuiltIn(func.getFunction()), [&](const IntrinsicFunctorInfo& x) -> bool {
if (!x.variadic && argTys.size() != x.params.size()) return true; // arity mismatch?

for (size_t i = 0; i < argTys.size(); ++i)
Expand All @@ -315,7 +315,7 @@ IntrinsicFunctors validOverloads(const analysis::TypeAnalysis& typing, const ast
});

std::sort(candidates.begin(), candidates.end(),
[&](const souffle::IntrinsicFunctor& a, const souffle::IntrinsicFunctor& b) {
[&](const IntrinsicFunctorInfo& a, const IntrinsicFunctorInfo& b) {
if (a.result != b.result) return a.result < b.result;
if (a.variadic != b.variadic) return a.variadic < b.variadic;
return std::lexicographical_compare(
Expand Down

0 comments on commit 117b2ed

Please sign in to comment.