PrincetonUniversity / cpf

Collaborative Parallelization Framework (CPF)
MIT License
31 stars 4 forks source link

An error encountered while compiling. #40

Closed sheenisme closed 1 year ago

sheenisme commented 2 years ago

When I try to make I have the following problem:

/home/sheen/cpf/liberty/lib/Planner/Planner.cpp: In member function ‘std::vector<std::unique_ptr<liberty::Remediator> > liberty::Planner::getAvailableRemediators(llvm::Loop*, llvm::noelle::PDG*)’:
/home/sheen/cpf/liberty/lib/Planner/Planner.cpp:93:42: error: no matching function for call to ‘std::vector<std::unique_ptr<liberty::Remediator> >::push_back(std::remove_reference<std::unique_ptr<liberty::SlampOracleAA, std::default_delete<liberty::SlampOracleAA> >&>::type)’
       remeds.push_back(std::move(slampaa));
                                          ^
In file included from /usr/include/c++/8/vector:64,
                 from /home/sheen/cpf/liberty/include/liberty/GraphAlgorithms/Ebk.h:4,
                 from /home/sheen/cpf/liberty/lib/Planner/Planner.cpp:16:
/usr/include/c++/8/bits/stl_vector.h:1074:7: note: candidate: ‘void std::vector<_Tp, _Alloc>::push_back(const value_type&) [with _Tp = std::unique_ptr<liberty::Remediator>; _Alloc = std::allocator<std::unique_ptr<liberty::Remediator> >; std::vector<_Tp, _Alloc>::value_type = std::unique_ptr<liberty::Remediator>]’
       push_back(const value_type& __x)
       ^~~~~~~~~
/usr/include/c++/8/bits/stl_vector.h:1074:7: note:   no known conversion for argument 1 from ‘std::remove_reference<std::unique_ptr<liberty::SlampOracleAA, std::default_delete<liberty::SlampOracleAA> >&>::type’ {aka ‘std::unique_ptr<liberty::SlampOracleAA, std::default_delete<liberty::SlampOracleAA> >’} to ‘const value_type&’ {aka ‘const std::unique_ptr<liberty::Remediator>&’}
/usr/include/c++/8/bits/stl_vector.h:1090:7: note: candidate: ‘void std::vector<_Tp, _Alloc>::push_back(std::vector<_Tp, _Alloc>::value_type&&) [with _Tp = std::unique_ptr<liberty::Remediator>; _Alloc = std::allocator<std::unique_ptr<liberty::Remediator> >; std::vector<_Tp, _Alloc>::value_type = std::unique_ptr<liberty::Remediator>]’

The gcc version of my machine is 8.4.Is it caused by the gcc version? If yes, what version should I use? Notes: my machine is intel x86_64, OS version is 5.13.0-39-generic #44~20.04.1-Ubuntu。

Looking forward to your reply, thanks.

vgene commented 2 years ago

Hi,

Thanks for trying our ongoing project!

We are under actively development and the current master branch works with the planner branch of SCAF, which can be configured with the Makefile by changing scaf-branch?=master to scaf-branch?=origin/planner. If you just want to try it out CPF on the benchmarks in our ASPLOS 20 paper, the tagged commit v9.0.0 may be better.

sheenisme commented 1 year ago

OK, thanks!