Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
caesr-pub
systemc-clang
Commits
ae33ed08
Commit
ae33ed08
authored
Feb 19, 2019
by
rmrf
Browse files
Signal and SignalContainer needs updates
parent
b091b359
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/FindSignals.cpp
View file @
ae33ed08
...
...
@@ -4,47 +4,35 @@
using
namespace
scpar
;
FindSignals
::~
FindSignals
()
{
// _os << "[[ Destructor FindSignals ]]\n";
//for (FindSignals::signalMapType::iterator sit = signalcontainer_map_->begin();
//sit != signalcontainer_map_->end(); sit++) {
for
(
auto
const
&
sit
:
signalcontainer_map_
)
{
delete
sit
.
second
;
}
signalcontainer_map_
.
clear
();
//delete signalcontainer_map_;
}
FindSignals
::
FindSignals
(
CXXRecordDecl
*
d
,
llvm
::
raw_ostream
&
os
)
:
_os
(
os
)
{
//signalcontainer_map_ = new FindSignals::signalMapType();
FindSignals
::
FindSignals
(
CXXRecordDecl
*
d
,
llvm
::
raw_ostream
&
os
)
:
os_
(
os
)
{
TraverseDecl
(
d
);
}
bool
FindSignals
::
VisitFieldDecl
(
FieldDecl
*
fd
)
{
QualType
q
=
fd
->
getType
();
QualType
q
{
fd
->
getType
()
}
;
if
(
IdentifierInfo
*
info
=
fd
->
getIdentifier
())
{
// fname = info->getNameStart();
// _os << "\n+ Name: " << info->getNameStart();
// _os << "\n+ Type: " << q.getAsString();
// _os << "\n+ also name: " << fd->getNameAsString();
/// We are going to store these. So use pointers.
const
Type
*
tp
=
q
.
getTypePtr
();
FindTemplateTypes
*
te
=
new
FindTemplateTypes
();
const
Type
*
tp
{
q
.
getTypePtr
()
}
;
FindTemplateTypes
*
te
{
new
FindTemplateTypes
()
}
;
te
->
Enumerate
(
tp
);
// te->printTemplateArguments(_os);
string
tt
=
te
->
getTemplateType
();
string
tt
{
te
->
getTemplateType
()
};
//
_os << "OUTPUT ============ " << tt << "\n";
if
(
(
signed
)
tt
.
find
(
"sc_signal"
)
==
-
1
)
{
//
If string is not found
if
(
tt
.
find
(
"sc_signal"
)
==
string
::
npos
)
{
delete
te
;
return
true
;
}
SignalContainer
*
sc
=
new
SignalContainer
(
fd
->
getNameAsString
(),
te
,
fd
);
SignalContainer
*
sc
=
new
SignalContainer
(
fd
->
getNameAsString
(),
te
,
fd
);
signalcontainer_map_
.
insert
(
FindSignals
::
signalPairType
(
fd
->
getNameAsString
(),
sc
));
}
return
true
;
...
...
@@ -53,13 +41,10 @@ bool FindSignals::VisitFieldDecl(FieldDecl *fd) {
FindSignals
::
signalMapType
FindSignals
::
getSignals
()
const
{
return
signalcontainer_map_
;
}
void
FindSignals
::
dump
()
{
_os
<<
"
\n
================= Find Signals ================
\n
"
;
//for (FindSignals::signalMapType::iterator sit = signalcontainer_map_->begin();
//sit != signalcontainer_map_->end(); sit++) {
os_
<<
"
\n
================= Find Signals ================
\n
"
;
for
(
auto
const
&
sit
:
signalcontainer_map_
)
{
_
os
<<
sit
.
second
;
sit
.
second
->
dump
(
_
os
);
os
_
<<
sit
.
second
;
sit
.
second
->
dump
(
os
_
);
}
_
os
<<
"
\n
================= END Find Ports ================
\n\n
"
;
os
_
<<
"
\n
================= END Find Ports ================
\n\n
"
;
}
src/FindSignals.h
View file @
ae33ed08
...
...
@@ -68,7 +68,7 @@ public:
void
dump
();
private:
llvm
::
raw_ostream
&
_
os
;
llvm
::
raw_ostream
&
os
_
;
//int state_;
signalMapType
signalcontainer_map_
;
};
...
...
tests/sanity/basic-module.cpp
View file @
ae33ed08
...
...
@@ -2,6 +2,7 @@
SC_MODULE
(
test
){
sc_in
<
int
>
in
;
sc_out
<
int
>
out
;
sc_signal
<
int
>
test_signal
;
void
entry_function_1
()
{
while
(
true
)
{
// do nothing
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment