Linux-Sparse Archive mirror
 help / color / mirror / Atom feed
From: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
To: linux-sparse@vger.kernel.org
Cc: "Jeff Layton" <jlayton@redhat.com>,
	"Uwe Kleine-König" <uwe@kleine-koenig.org>
Subject: [ANNOUNCE] Sparse v0.6.4
Date: Mon, 6 Sep 2021 06:21:11 +0200	[thread overview]
Message-ID: <20210906042111.lhoq7egtpmw3jcv6@mail> (raw)

Sparse v0.6.4 is now out.

The source code can be found at its usual repository:
   git://git.kernel.org/pub/scm/devel/sparse/sparse.git v0.6.4

The tarballs can be found at:
   https://www.kernel.org/pub/software/devel/sparse/dist/

Many thanks to people who have somehow contributed to the 299
patches of this release:
   Ramsay Jones, Linus Torvalds, Kyle Russell


Release notes for v0.6.4
------------------------

Changes since v0.6.4-rc1:
  * none

Fixes:
  * build: fix version.h dependencies
  * fix and complete the evaluation of atomic builtins
  * fix some testcases related to bitfield manipulation
  * llvm: fix crash with llvm-11 / use real phi-nodes
  * fix: OP_INLINE should not use the function symbol
  * fix testing if a OP_CALL's function is pure
  * warn on all missing parameter types
  * fix init_linearized_builtins()
  * fix usage count in linearize_fma()
  * linearize: fix a couple of 'selfcheck' warnings
  * cfg: remove phi-sources when merging BBs
  * cfg: remove phi-nodes when merging BBs
  * cfg: add missing REPEAT_CFG_CLEANUP
  * fix: rebuild dominance tree during CFG cleanup
  * fix: drop qualifiers of casts and comma or statement expressions
  * fix kill_insn(OP_SETVAL)
  * fix trivial_phi() when the target is before the single value
  * memops: fix wrong killing of stores partially dominated by a load
  * memops: kill dead loads before phi-node conversion
  * memops: kill more dead stores
  * fix rem_usage() when the pseudo has a use list but is not PSEUDO_REG
  * shut up a silly -Wmaybe-uninitialized warning
  * fix add_join_conditional() when one of the alternative is VOID
  * asm: fix killing OP_ASM
  * asm: fix a test failure on 32-bit systems
  * asm: output *memory* operands need their address as *input*
  * asm: teach dominates() about OP_ASM
  * fix the type in the assignment of 0 to a restricted variable
  * fix SSA conversion of mismatched memops
  * fix and improve the check that protects try_to_simplify_bb()
  * fix remove_merging_phisrc() with duplicated CFG edges.
  * fix null-pointer crash with with ident same as one of the attributes

New:
  * improve CFG simplification
  * teach sparse about -funsigned-bitfields
  * add a symbolic checker
  * expand __builtin_object_size()
  * let plain bitfields default to signed
  * add support for __packed struct
  * handle qualified anonymous structures
  * move check_access() to late_warnings()
  * let phi-sources to directly access to their phi-node
  * small improvements to the ptrlist API
  * warn when taking the address of a built-in function
  * handle more graciously labels with no statement
  * give an explicit type to compare's operands
  * give a type to OP_SYMADDR
  * add some notes about pseudos being typeless
  * shrink struct basic_block
  * pre-proc: strip leading "./" from include paths
  * pre-proc: do some path normalization
  * linearize __builtin_isdigit()

IR Simplifications:
  * simplify: essential OP_ADD & OP_SUB simplifications
  * simplify and canonicalize unsigned compares
  * simplify: basic unop simplifications
  * simplify SEL(SEL(...), ...)
  * simplify SEL(x == y, x, y) and friends
  * simplify SEL(x, x, x) and SEL(x, 0, x)
  * simplify & canonicalize compares
  * simplify CBR-CBR on the same condition
  * simplify unrestricted postop
  * simplification of computed gotos with 1 or 2 targets
  * simplify kill_insn() of unops and unop-ish instructions
  * simplify: put PSEUDO_ARGS and PSEUDO_REGs in canonical order too
  * simplify (~x {&,|,^} x) --> {0,~0,~0}
  * simplify ((x cmp y) {&,|,^} (x !cmp y)) --> {0,1,1}
  * simplify LSR + SEXT into ASR
  * simplify and canonicalize signed compares
  * simplify CMP(AND(x,M), C) and CMP(OR(x,M), C)
  * simplify AND(x >= 0, x < C) --> (unsigned)x < C
  * simplify TRUNC(x) {==,!=} C --> AND(x,M) {==,!=} C
  * simplify of TRUNC(NOT(x)) --> NOT(TRUNC(x))
  * factorize (x OP1 z) OP2 (y OP1 z) into (x OP2 y) OP1 z
  * factorize SHIFT(x, s) OP SHIFT(y, s) into SHIFT((x OP y), s)
  * factorize SEL(x, OP(y,z), y) into OP(SEL(x, z, 0), y)
  * convert SEL(x & BIT1, BIT2, 0) into SHIFT(x & BIT1, S)
  * canonicalize ((x & M) == M) --> ((x & M) != 0) when M is a power-of-2

Testsuite:
  * testsuite: add new tags: check-output-{match,returns}
  * testsuite: fix parsing of tags used in the testcases
  * testsuite: add option '-r' to 'test-suite format'

Documentation:
  * doc: fix: Sphinx's option ':noindex:' renamed into ':noindexentry:'
  * doc: fix extracted autodoc when short description ends with a '?'
  * doc: add some doc about using NULL or VOID in pointer lists
  * doc: add some doc to flowgraph.h
  * doc: extract doc related to simplification

Cleanups:
  * slice: small reorg of OP_SLICE in preparation for some incoming changes
  * cleanup: removed an unused parameter for show_symbol_list()
  * cleanup linearize_cond_branch()
  * cleanup: remove unneeded REPEAT_SYMBOL_CLEANUP
  * cleanup: no needs to use MARK_CURRENT_DELETED() for multi-jumps
  * linearize: remove unneeded forward declarations
  * linearize: only allocate call instructions when needed

-- Luc Van Oostenryck

             reply	other threads:[~2021-09-06  4:21 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-09-06  4:21 Luc Van Oostenryck [this message]
2021-09-06 10:04 ` [ANNOUNCE] Sparse v0.6.4 Ben Dooks
2021-09-07  6:29   ` Luc Van Oostenryck
2021-09-28 21:05     ` Ben Dooks
2021-09-28 19:56 ` Uwe Kleine-König
2021-09-28 22:43   ` Ramsay Jones
2021-09-29  6:54     ` Uwe Kleine-König
2021-09-29 21:35       ` Ramsay Jones

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20210906042111.lhoq7egtpmw3jcv6@mail \
    --to=luc.vanoostenryck@gmail.com \
    --cc=jlayton@redhat.com \
    --cc=linux-sparse@vger.kernel.org \
    --cc=uwe@kleine-koenig.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).