Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Openssl missing hl support #745

Merged
merged 4 commits into from
Nov 6, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 8 additions & 4 deletions include/vast/CodeGen/DefaultAttrVisitor.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,6 @@ namespace vast::cg {

mlir_attr visit(const clang_attr *attr) { return Visit(attr); }

mlir_attr VisitConstAttr(const clang::ConstAttr *attr);
mlir_attr VisitSectionAttr(const clang::SectionAttr *attr);
mlir_attr VisitAliasAttr(const clang::AliasAttr *attr);
mlir_attr VisitErrorAttr(const clang::ErrorAttr *attr);
Expand All @@ -34,8 +33,12 @@ namespace vast::cg {
mlir_attr VisitAlignedAttr(const clang::AlignedAttr *attr);
mlir_attr VisitAlwaysInlineAttr(const clang::AlwaysInlineAttr *attr);
mlir_attr VisitArtificialAttr(const clang::ArtificialAttr *attr);
mlir_attr VisitColdAttr(const clang::ColdAttr *attr);
mlir_attr VisitCommonAttr(const clang::CommonAttr *attr);
mlir_attr VisitConstAttr(const clang::ConstAttr *attr);
mlir_attr VisitConstInitAttr(const clang::ConstInitAttr *attr);
mlir_attr VisitConstructorAttr(const clang::ConstructorAttr *attr);
mlir_attr VisitLoaderUninitializedAttr(const clang::LoaderUninitializedAttr *attr);
mlir_attr VisitNoInstrumentFunctionAttr(const clang::NoInstrumentFunctionAttr *attr);
mlir_attr VisitPackedAttr(const clang::PackedAttr *attr);
mlir_attr VisitPureAttr(const clang::PureAttr *attr);
mlir_attr VisitSwiftAttrAttr(const clang::SwiftAttrAttr *attr);
Expand All @@ -49,6 +52,9 @@ namespace vast::cg {
mlir_attr VisitBuiltinAttr(const clang::BuiltinAttr *attr);
mlir_attr VisitAsmLabelAttr(const clang::AsmLabelAttr *attr);
mlir_attr VisitAllocAlignAttr(const clang::AllocAlignAttr *attr);
mlir_attr VisitNoInstrumentFunctionAttr(const clang::NoInstrumentFunctionAttr *attr);
mlir_attr VisitNoProfileFunctionAttr(const clang::NoProfileFunctionAttr *attr);
mlir_attr VisitNotTailCalledAttr(const clang::NotTailCalledAttr *attr);
mlir_attr VisitAllocSizeAttr(const clang::AllocSizeAttr *attr);
mlir_attr VisitEnableIfAttr(const clang::EnableIfAttr *attr);
mlir_attr VisitC11NoReturnAttr(const clang::C11NoReturnAttr *attr);
Expand All @@ -58,7 +64,6 @@ namespace vast::cg {
mlir_attr VisitBlockingAttr(const clang::BlockingAttr *attr);
mlir_attr VisitAllocatingAttr(const clang::AllocatingAttr *attr);
mlir_attr VisitLeafAttr(const clang::LeafAttr *attr);
mlir_attr VisitColdAttr(const clang::ColdAttr *attr);
mlir_attr VisitDeprecatedAttr(const clang::DeprecatedAttr *attr);
mlir_attr VisitDestructorAttr(const clang::DestructorAttr *attr);
mlir_attr VisitTransparentUnionAttr(const clang::TransparentUnionAttr *attr);
Expand Down Expand Up @@ -86,7 +91,6 @@ namespace vast::cg {
mlir_attr VisitAssumeAlignedAttr(const clang::AssumeAlignedAttr *attr);
mlir_attr VisitCountedByAttr(const clang::CountedByAttr *attr);
mlir_attr VisitCleanupAttr(const clang::CleanupAttr *attr);
mlir_attr VisitNoProfileFunctionAttr(const clang::NoProfileFunctionAttr *attr);

private:
template< typename attr_t, typename... args_t >
Expand Down
16 changes: 12 additions & 4 deletions include/vast/Dialect/HighLevel/HighLevelAttributes.td
Original file line number Diff line number Diff line change
Expand Up @@ -81,9 +81,16 @@ def HighLevel_CleanupAttr : HighLevel_SymbolReferringAttr< "Cleanup", "
def HighLevel_AlignedAttr : HighLevel_Attr< "Aligned", "aligned" >;
def HighLevel_AlwaysInlineAttr : HighLevel_Attr< "AlwaysInline", "always_inline" >;
def HighLevel_ArtificialAttr : HighLevel_Attr< "Artificial", "artificial" >;
def HighLevel_Cold : HighLevel_Attr< "Cold", "cold" >;
def HighLevel_Common : HighLevel_Attr< "Common", "common" >;
def HighLevel_ConstAttr : HighLevel_Attr< "Const", "const" >;
def HighLevel_ConstInitAttr : HighLevel_Attr< "ConstInit", "constinit" >;
def HighLevel_ConstructorAttr : HighLevel_Attr< "Constructor", "constructor" >
{
let parameters = (ins DefaultValuedParameter<"unsigned", "65535">:$priority);
let assemblyFormat = "`<` $priority `>`";
}
def HighLevel_LoaderUninitAttr : HighLevel_Attr< "LoaderUninitialized", "loader_uninitialized" >;
def HighLevel_NoInstrumentAttr : HighLevel_Attr< "NoInstrumentFunction", "no_instrument_function" >;
def HighLevel_PackedAttr : HighLevel_Attr< "Packed", "packed" >;
def HighLevel_PureAttr : HighLevel_Attr< "Pure", "pure" >;
def HighLevel_SwiftAttrAttr : HighLevel_Attr< "SwiftAttr", "swift_attr" >
Expand Down Expand Up @@ -115,7 +122,6 @@ def HighLevel_PassObjectSizeAttr
}

def HighLevel_LeafAttr : HighLevel_Attr< "Leaf", "leaf" >;
def HighLevel_ColdAttr : HighLevel_Attr< "Cold", "cold" >;
def HighLevel_TransparentUnionAttr : HighLevel_Attr< "TransparentUnion", "transparent_union" >;
def HighLevel_UnavailableAttr : HighLevel_NameAttr< "Unavailable", "unavailable" >;
// FIXME: this is just a stub
Expand All @@ -138,8 +144,6 @@ def HighLevel_AvailableOnlyInDefaultEvalMethodAttr
: HighLevel_Attr< "AvailableOnlyInDefaultEvalMethod", "available_only_in_default_eval_method" >;
def HighLevel_AvailabilityAttr : HighLevel_Attr< "AvailabilityAttr", "availability" >;
def HighLevel_FallthroughAttr : HighLevel_Attr< "Fallthrough", "fallthrough" >;
def HighLevel_NoProfileInstrumentFunctionAttr
: HighLevel_Attr< "NoProfileInstrumentFunction", "no_profile_instrument_function" >;

def HighLevel_AsmLabelAttr
: HighLevel_Attr< "AsmLabel", "asm" >
Expand Down Expand Up @@ -189,6 +193,10 @@ def HighLevel_AllocAlignAttr
let assemblyFormat = "`<` $alignment `>`";
}

def HighLevel_NoInstrumentFunctionAttr : HighLevel_Attr< "NoInstrumentFunction", "no_instrument_function" >;
def HighLevel_NoProfileFunctionAttr : HighLevel_Attr< "NoProfileFunction", "no_profile_instrument_function" >;
def HighLevel_NotTailCalledAttr : HighLevel_Attr< "NotTailCalled", "not_tail_called" >;

def HighLevel_AllocSizeAttr
: HighLevel_Attr< "AllocSize", "alloc_size" >
{
Expand Down
47 changes: 32 additions & 15 deletions lib/vast/CodeGen/DefaultAttrVisitor.cpp
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright (c) 2024, Trail of Bits, Inc.

Check notice on line 1 in lib/vast/CodeGen/DefaultAttrVisitor.cpp

View workflow job for this annotation

GitHub Actions / cpp-linter (19, 22.04)

Run clang-format on lib/vast/CodeGen/DefaultAttrVisitor.cpp

File lib/vast/CodeGen/DefaultAttrVisitor.cpp does not conform to Custom style guidelines. (lines 130)

#include "vast/CodeGen/DefaultAttrVisitor.hpp"

Expand All @@ -6,10 +6,6 @@

namespace vast::cg
{
mlir_attr default_attr_visitor::VisitConstAttr(const clang::ConstAttr *attr) {
return make< hl::ConstAttr >();
}

mlir_attr default_attr_visitor::VisitSectionAttr(const clang::SectionAttr *attr) {
return make< hl::SectionAttr >(attr->getName());
}
Expand Down Expand Up @@ -47,12 +43,28 @@
return make< hl::ArtificialAttr >();
}

mlir_attr default_attr_visitor::VisitLoaderUninitializedAttr(const clang::LoaderUninitializedAttr *) {
return make< hl::LoaderUninitializedAttr >();
mlir_attr default_attr_visitor::VisitColdAttr(const clang::ColdAttr *attr) {
return make< hl::ColdAttr >();
}

mlir_attr default_attr_visitor::VisitNoInstrumentFunctionAttr(const clang::NoInstrumentFunctionAttr *) {
return make< hl::NoInstrumentFunctionAttr >();
mlir_attr default_attr_visitor::VisitCommonAttr(const clang::CommonAttr *attr) {
return make< hl::CommonAttr >();
}

mlir_attr default_attr_visitor::VisitConstAttr(const clang::ConstAttr *attr) {
return make< hl::ConstAttr >();
}

mlir_attr default_attr_visitor::VisitConstInitAttr(const clang::ConstInitAttr *attr) {
return make< hl::ConstInitAttr >();
}

mlir_attr default_attr_visitor::VisitConstructorAttr(const clang::ConstructorAttr *attr) {
return make< hl::ConstructorAttr >(attr->getPriority());
}

mlir_attr default_attr_visitor::VisitLoaderUninitializedAttr(const clang::LoaderUninitializedAttr *) {
return make< hl::LoaderUninitializedAttr >();
}

mlir_attr default_attr_visitor::VisitPackedAttr(const clang::PackedAttr *) {
Expand Down Expand Up @@ -107,6 +119,18 @@
return make< hl::AllocAlignAttr >(attr->getParamIndex().getSourceIndex());
}

mlir_attr default_attr_visitor::VisitNoInstrumentFunctionAttr(const clang::NoInstrumentFunctionAttr *) {
return make< hl::NoInstrumentFunctionAttr >();
}

mlir_attr default_attr_visitor::VisitNoProfileFunctionAttr(const clang::NoProfileFunctionAttr *) {
return make< hl::NoProfileFunctionAttr >();
}

mlir_attr default_attr_visitor::VisitNotTailCalledAttr(const clang::NotTailCalledAttr *) {
return make< hl::NotTailCalledAttr >();
}

mlir_attr default_attr_visitor::VisitAllocSizeAttr(const clang::AllocSizeAttr *attr) {
auto num = attr->getNumElemsParam().isValid() ? attr->getNumElemsParam().getSourceIndex() : int();
return make< hl::AllocSizeAttr >(attr->getElemSizeParam().getSourceIndex(), num);
Expand Down Expand Up @@ -144,10 +168,6 @@
return make< hl::LeafAttr >();
}

mlir_attr default_attr_visitor::VisitColdAttr(const clang::ColdAttr *attr) {
return make< hl::ColdAttr >();
}

mlir_attr default_attr_visitor::VisitDeprecatedAttr(const clang::DeprecatedAttr *attr) {
return make< hl::DeprecatedAttr >(attr->getMessage(), attr->getReplacement());
}
Expand Down Expand Up @@ -269,7 +289,4 @@
return make< hl::CleanupAttr >(attr->getFunctionDecl()->getName());
}

mlir_attr default_attr_visitor::VisitNoProfileFunctionAttr(const clang::NoProfileFunctionAttr *attr) {
return make< hl::NoProfileInstrumentFunctionAttr >();
}
} // namespace vast::cg