- Oct 16, 2018
-
-
Alessandro Di Federico authored
In a `MonotoneFramework` it is sometimes necessary to change the information propagated on a branch w.r.t. another branch. This commit introduces the `handleEdge` function that allows `MonotoneFramework` implementors to modify the `LatticeElement` produced by `transfer`.
-
Alessandro Di Federico authored
`dumpModule` is a debug function that can be called from GDB to dump a `Module *` to a chosen path.
-
Alessandro Di Federico authored
`MonotoneFramework.h` has been moved into `include/revng/Support` so that it can be employed by components outside `libStackAnalysis`.
-
- Oct 03, 2018
-
-
Alessandro Di Federico authored
In stack analysis' output, the list of basic blocks composing a function was not sorted. This lead a test to fail due to the presence of the `--order` flag when comparing the output. This commit ensures that this list is ordered, by basic block name.
-
Alessandro Di Federico authored
This commit dismisses the `argparse` library (the only non-runtime C component of rev.ng) in favor of LLVM's CommandLine library, which offers several benefits. Among others, now command line arguments can be easily specified as a global variable, decentralizing their management and avoiding the long list of arguments in the constructor of singleton objects such as `CodeGenerator`.
-
Alessandro Di Federico authored
This commit introduces `revng_log`, a macro analagous to `revng_assert`, which basically allows to have the benefit of the `Logger` class without having to compute the expression to log if the logger is disabled. This commit also completely dismisses the `DBG` macro, converting all the old code to `Logger` + `revng_log`.
-
Alessandro Di Federico authored
This commit moves around most files. The new directory structure is as follows: * `lib/$LIBRARY/`: contains a library, i.e., a set of `.cpp` files used by multiple libraries/tools. * `include/revng/$LIBRARY/`: contains the public headers associated to the library in `lib/$LIBRARY/`. * `tools/$TOOL/`: directory where all the `.cpp` files (and private headers) for a tool reside. Currently we have two tools: `revamb` and `revamb-dump`. On top of this, all file names are now in camel case.
-
- Sep 29, 2018
-
-
Alessandro Di Federico authored
-
Alessandro Di Federico authored
This commit enforces on the whole project the usage of our own assertion system. This means all calls to `abort`, `assert` and `llvm_unreachable` have been replaced with calls to `revng_abort`, `revng_assert` and `revng_unreachable`, respectively. The error messages, usually expressed as `assert(Condition && "Message")` have now been replaced using the second (optional) argument of `revng_assert`. Additionally, all the `assert(false)` statements have been replaced with calls to `revng_abort`. Apart from readibility, this ensures the compilers is aware of the fact that call will never return. This change will enable us to drop many statements whose sole purpose was marking a variable employed in an assertion as used in release mode. In fact, with the new assertion system this is no longer necessary.
-
- Sep 26, 2018
-
-
Alessandro Di Federico authored
We used to have a `_` prefix for include guards macros, however, according to the standard, macros starting with an underscore are reserved. This commit drops them all.
-
- Sep 21, 2018
-
-
Alessandro Di Federico authored
This commit applies our `clang-format` rules globally. From now on, all commits should respect our configuration file. Pretty large change.
-
Alessandro Di Federico authored
-
Alessandro Di Federico authored
This commit introduces `using` statements and `constexpr` functions to increase readibility of various types.
-
Alessandro Di Federico authored
-
Alessandro Di Federico authored
This commit introduces a check in `check-conventions.sh` to prevent committing code denoted by a `// WIP` comment, that are supposed to be used to remind the developer something has to be changed before submitting a pull request.
-
- Sep 18, 2018
-
-
Alessandro Di Federico authored
This is a very large commit importing the reviewed (and heavily simplified) stack analysis and the new ABI analysis, which provides information on the calling convention of each function and so on. For an overview of the new analyses please consult OVERVIEW.md.
-