summaryrefslogtreecommitdiffstatshomepage
path: root/src/lib/netlist/plib/ppreprocessor.cpp
Commit message (Collapse)AuthorAgeFilesLines
* netlist: make pstring length/size use consistent. couriersud2020-09-241-3/+3
| | | | | | | | | | | * length reports the number of character codes in the string * size reports the size in memory units * Reminder: Set PSTRING_USE_STD_STRING to 1 in pstring.h and get native std::string * pstrings are compatible to std::string but only support a limited subset of functionality. * By default (always like this) utf8 is supported and thus length reports the number of multi-byte characters.
* netlist: code maintenance and performance optimizations. Couriersud2020-09-051-21/+72
| | | | | | | | | | | * rename some misleading type names * remove callback_t and replace by better scalable approach * hide implementations details * move sources classes from putil.h to psources.h * reduce code complexity * improve parsing performance, parsing netlists now is twice as fast. * fix issues around multi-byte string support * moved psplit into pstrutil.h
* srcclean for 0.224 Vas Crabb2020-08-231-1/+1
|
* netlist: Fix elif processing. couriersud2020-08-151-5/+9
|
* netlist: source stream refactoring couriersud2020-07-281-4/+4
| | | | | * This is an infrastructure change to enable better error reporting including file/source and line numbers in the future
* netlist: fix a bug in preprocessor if and elif parsing. couriersud2020-07-281-17/+59
|
* netlist: code maintenance and bug fixes. couriersud2020-07-011-1/+1
| | | | | | | | | | | * palloc.h/pmatrix2d.h: Fix static_assert warnings at the origin. * Rework hints to broaden their use and fix NC hint. * 74377: use NC hint * plists.h: Fix debugging in MSVC * Include cleanup: Move everything not needed by netlists from nl_setup.h into core/setup.h * Fix some clang tidy warnings * srcclean
* netlist: include file refactoring. couriersud2020-06-281-0/+1
| | | | | | | | The purpose of this ongoing exercise is to remove unnecessary dependencies in header files. netlist implementations should only have access to what they need. The same applies to device implementations. Core stuff will be moved to the core subdirectory going forward.
* netlist: Performance improvement and refactoring. [Couriersud] couriersud2020-06-131-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Kidniki now achieves up to 910% when run with static solvers and with nltool. That is significant better than the 860% we have seen previously. This increase is driven by using a global memory pool in the solver code. In addition the following refactoring and code maintenance work is included. Please excuse the large commit, some of this took interfered with other work and the detail development steps were ugly. - gsl support: This commit adds pgsl.h which implements a very limited number of the functionality of the gsl header described in the c++ core guidelines. - clang-tidy fixes - A significant refactoring of palloc.h. Aligned hints were removed, they added complexity without a significant performance gain. Vector operations should better be done on special spans/views. The code has been tested on linux with g++-7, g++-9, clang-11. On Windows mingw-10 and VS2019, OSX clang-11.
* netlist: code maintenance. (nw) couriersud2020-06-081-2/+2
| | | | | | - more c++14, use enable_if_t instead of enable_if - cleaned up the use of memory allocation arenas - reduce MACRO usage, use std::conditional where possible
* netlist: clang-tidy, header order fixes. (nw) couriersud2020-06-011-1/+1
|
* netlist: split plists.h and fix nvcc compile for 10.2 (nw) couriersud2020-05-251-6/+6
| | | | | | | | | plists.h was splitted into plists.h, pmulti_threading.h and ptimed_queue.h. In addition removed plists.h from a number of files it wasn't used in. Certain minor adjustment needed to be made for cuda toolkit 10.1 and 10.2.
* netlist: Add support for empty #defines to preprocessor. [Aaron Giles] Aaron Giles2020-05-151-1/+12
| | | | Also add detection and reporting of re-definitions.
* netlist: Added undef support to the preprocessor. [Aaron Giles] Aaron Giles2020-05-101-0/+13
|
* netlist: add elif processing to preprocessor. [Couriersud] couriersud2020-05-061-0/+12
|
* netlist: clang-tidy, srcclean and pedantic warnings fixed. (nw) couriersud2020-04-181-1/+1
|
* netlist: clang lint fixes. (nw) couriersud2020-01-311-11/+9
|
* netlist: Parameters evaluated when netlist is created. [Couriersud] couriersud2020-01-291-3/+0
| | | | | | | | | | | | Parameters are now passed to the netlist core as strings. During netlist creation they are evaluated as functions. This opens the path to parameters on subdevice level. Examples: PARAM(device.XY, (1+2*0.005)) RES(R1, 2.05*RES_K(1)+1) In addition the commit contains dead code removal.
* netlist: Code maintenance. (nw) couriersud2020-01-271-23/+36
| | | | | | | | | - Fixed some clang lint warnings - Removed dead code - Experimental parser code to allow calculations in parameter value. This already works for compiled netlists. These changes are currently disabled. Updated pong netlist (and CRC/SHA) to work with this new code.
* netlist: code maintenance. (nw) couriersud2020-01-201-1/+1
| | | | | | - remove pthrow trampline as proposed by Vas. - identify throwing code by adding noexcept(false) - move "connected term" information to setup code. - srcclean
* netlist: code maintenance and bug fixes. (nw) couriersud2019-11-081-16/+11
| | | | | | | - comment style migration continues. - Fixed a two bugs in the truthtable ignore inputs code - refactored the truthtable code a bit for better readability. - updated netlist specific gitignore.
* netlist: more consistent exception handling. (nw) couriersud2019-11-051-1/+1
| | | | Still not optimal, but better than what we had previously. No exception logging comes closer.
* netlist: code maintenance. (nw) couriersud2019-11-041-1/+1
| | | | | | | | - more const - explicitly raise exceptions instead of leaving this to log.fatal() - correct a number of cppcheck findings. - dead code removal - clang lint corrections, e.g. include order
* netlist: code maintenance. (nw) couriersud2019-11-031-0/+1
| | | | | | - Separate code out into pmath.h and pstonum.h. - Fix VC build error - optimize pfmtlog.h a bit
* netlist: code maintenance. (nw) couriersud2019-10-291-0/+628
- Removed code no longer used - Add noexcept where appropriate - split pparser.[c|h] into ppreprocessor and ptokenizer - smaller optimizations, e.g. use of std::size_t - fix lint warnings