Commit message (Collapse) | Author | Age | Files | Lines | |
---|---|---|---|---|---|
* | opt: Warn about expressions we remove while optimizing | Tavian Barnes | 2022-03-26 | 1 | -28/+108 |
| | |||||
* | expr: Store auxilliary data in a union | Tavian Barnes | 2022-03-25 | 1 | -157/+164 |
| | | | | And rename struct expr to bfs_expr. | ||||
* | Include what I use | Tavian Barnes | 2020-11-12 | 1 | -0/+2 |
| | | | | Thanks to https://github.com/include-what-you-use/include-what-you-use | ||||
* | opt: Assert that we don't do disabled optimizations | Tavian Barnes | 2020-11-10 | 1 | -0/+2 |
| | |||||
* | opt: Predicates aren't true when they're false | Tavian Barnes | 2020-11-09 | 1 | -2/+2 |
| | | | | | | | | | | | | This unfortunate typo was mostly harmless; since the predicates were always assumed to be true, they wouldn't conflict. The exception is -user/-group, which set -nouser/-nogroup to false for users/groups that exist. Even -O0 wasn't enough to suppress the bug, due to a missing optlevel check fixed in the previous commit. Fixes: 305ee902874b49351f4916e303c293523f11570b | ||||
* | opt: Check optlevel before removing unreachable expressions | Tavian Barnes | 2020-11-09 | 1 | -2/+4 |
| | |||||
* | Use two newlines for all pre-eval warnings | Tavian Barnes | 2020-11-09 | 1 | -1/+1 |
| | |||||
* | Rename struct cmdline to bfs_ctx | Tavian Barnes | 2020-09-27 | 1 | -38/+39 |
| | | | | | The API remains similar, with some added accessor functions for lazy initialization of the pwcache and mtab. | ||||
* | bftw: Rename bftw_typeflag to bftw_type, and make it not a bitmask | Tavian Barnes | 2020-07-29 | 1 | -2/+2 |
| | |||||
* | opt: Warn when no side effects are reachable | Tavian Barnes | 2020-06-07 | 1 | -4/+4 |
| | |||||
* | opt: Dump the command line before optimizing with -D opt | Tavian Barnes | 2020-06-07 | 1 | -0/+2 |
| | |||||
* | parse: Prohibit actions inside -exclude | Tavian Barnes | 2020-06-07 | 1 | -0/+4 |
| | |||||
* | Implement -exclude, a special form for convenient exclusions | Tavian Barnes | 2020-06-07 | 1 | -14/+43 |
| | | | | Fixes #8. | ||||
* | opt: Make sure facts_when_impure sees *all* impure literals | Tavian Barnes | 2020-06-07 | 1 | -2/+4 |
| | |||||
* | diag: Unify debug printing | Tavian Barnes | 2020-06-02 | 1 | -68/+51 |
| | |||||
* | opt: Add missing #include <unistd.h> | Tavian Barnes | 2020-05-22 | 1 | -0/+1 |
| | |||||
* | opt: Track data flow information about predicates | Tavian Barnes | 2020-05-22 | 1 | -23/+174 |
| | | | | | | | | | | This allows us to optimize things like -sparse -o -not -sparse <==> -true and -sparse -a -not -sparse <==> -false | ||||
* | opt: Avoid dangling pointers in de_morgan() | Tavian Barnes | 2020-03-23 | 1 | -5/+7 |
| | | | | | | | | If optimize_{and,or}_expr() relocates expr, we need to update the parent expr or else we might return garbage. It seems impossible to actually trigger this bug right now, since the {and,or} optimizations are symmetric, but it could be hit if the simplifications in de_morgan() expose more information than was known previously. | ||||
* | Release 1.41.4 | Tavian Barnes | 2019-04-15 | 1 | -1/+1 |
| | |||||
* | opt: Optimize redundant comma expressions | Tavian Barnes | 2019-03-21 | 1 | -3/+5 |
| | |||||
* | opt: Replace -a -false/-o -true with -not when possible | Tavian Barnes | 2019-03-20 | 1 | -0/+17 |
| | |||||
* | Add some documentation comments | Tavian Barnes | 2019-02-09 | 1 | -0/+25 |
| | |||||
* | opt: Optimize -samefile together with -inum | Tavian Barnes | 2019-02-04 | 1 | -0/+9 |
| | |||||
* | opt: Apply data flow optimizations to more numeric ranges | Tavian Barnes | 2019-02-01 | 1 | -79/+208 |
| | |||||
* | color: Check format strings + args for cfprintf() | Tavian Barnes | 2019-01-02 | 1 | -1/+1 |
| | | | | | | %{cc} is now ${cc} to avoid warnings about an unrecognized format specifier, and %P and %L are now %pP and %pL to make them look more like standard format strings. | ||||
* | Update copyright dates | Tavian Barnes | 2018-09-24 | 1 | -1/+1 |
| | |||||
* | opt: Re-run optimizations after reordering expressions | Tavian Barnes | 2018-08-18 | 1 | -24/+57 |
| | | | | | This catches new data flow inferences that can be made after swapping the children of an expression. | ||||
* | Keep track of required FDs per-expr | Tavian Barnes | 2017-12-15 | 1 | -0/+13 |
| | |||||
* | opt: More -O4 tweaks | Tavian Barnes | 2017-09-17 | 1 | -24/+15 |
| | |||||
* | opt: Use the standard LLONG_MAX instead of the nonstandard LONG_LONG_MAX | Tavian Barnes | 2017-09-17 | 1 | -1/+1 |
| | |||||
* | opt: Fix -depth with arguments bigger than INT_MAX | Tavian Barnes | 2017-09-17 | 1 | -4/+8 |
| | |||||
* | opt: Move some aggressive optimizations back to -O4 | Tavian Barnes | 2017-09-17 | 1 | -10/+18 |
| | |||||
* | opt: Have data flow analysis respect always_{true,false} | Tavian Barnes | 2017-09-17 | 1 | -6/+21 |
| | |||||
* | opt: Implement some data flow optimizations | Tavian Barnes | 2017-09-16 | 1 | -108/+322 |
| | |||||
* | opt: Separate optimization from parsing | Tavian Barnes | 2017-09-16 | 1 | -0/+410 |