Daily bump.
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 1021d35..5d1d60b 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,531 @@
+2026-11-13  John David Anglin  <danglin@gcc.gnu.org>
+
+	PR target/127142
+	* config/pa/pa.cc (pa_preferred_reload_class): New function.
+	(TARGET_PREFERRED_RELOAD_CLASS): Define.
+	(hppa_register_move_cost): Set cost to 2 for moves between
+	R1_REGS and GENERAL_REGS, and 8 for moves between
+	GENERAL_REGS/R1_REGS and FP_REGS.
+	(pa_secondary_reload): Remove redundant sri->icode assignment.
+	(pa_spill_class): Return GENERAL_REGS when spilling R1_REGS.
+	* config/pa/pa.md: Merge 32-bit and 64-bit PIC label address
+	patterns into a single Pmode define_insn, fix %r1 operand in
+	addil sequences, and add a disparaged 'r' alternative.
+	Add disparaged 'r' alternatives to 32-bit and 64-bit PIC HIGH
+	patterns.  Split 32-bit non-PIC HIGH pattern into
+	TARGET_LONG_LOAD_STORE and !TARGET_LONG_LOAD_STORE patterns with
+	disparaged 'r' alternatives.  Add define_peephole2 patterns to
+	use %r1 for HIGH and PIC label loads when %r1 is dead.
+	(call_symref, call_symref_pic, call_symref_pic_post_reload)
+	(call_symref_64bit, call_symref_64bit_post_reload, call_reg)
+	(call_reg_pic, call_reg_pic_post_reload, call_value_symref)
+	(call_value_symref_pic, call_value_symref_pic_post_reload)
+	(call_value_symref_64bit, call_value_symref_64bit_post_reload)
+	(call_value_reg, call_value_reg_pic, call_value_reg_pic_post_reload)
+	(sibcall_internal_symref, sibcall_internal_symref_64bit)
+	(sibcall_value_internal_symref, sibcall_value_internal_symref_64bit):
+	Remove (clobber (reg 1)) and update corresponding define_splits.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (ANALYZER_OBJS): Add analyzer/initializers.o,
+	analyzer/string-scan.o, analyzer/symbolic-bit-contents.o,
+	analyzer/symbolic-bit-vectors.o,
+	analyzer/symbolic-memory-ranges.o, analyzer/symbolic-pointers.o,
+	analyzer/symbolic-ranges.o, and analyzer/symbolic-scalars.o.
+	Remove analyzer/ranges.o.
+	* custom-sarif-properties/state-graphs.cc (node::num_bits):
+	Convert from json::string_property to json::json_property.
+	* custom-sarif-properties/state-graphs.h (node::num_bits):
+	Likewise.
+	* diagnostics/color.cc (gcc_color_defaults): Add entries for
+	debugging the analyzer.
+	* doc/analyzer.texi: Update for new store implementation.
+	(__analyzer_hexdump): New.
+	* selftest-run-tests.cc: Add #define INCLUDE_VECTOR.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (ANALYZER_OBJS): Replace analyzer/symbol.o with
+	analyzer/symbolic-nodes.o.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (ANALYZER_OBJS): Add analyzer/concrete-ranges.o.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (ANALYZER_OBJS): Add analyzer/integer-with-unit.o.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (ANALYZER_OBJS): Add analyzer/integer.o.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* Makefile.in (OBJS-libcommon): Add diagnostics/markup.o.
+	* diagnostics/diagnostics-selftests.cc
+	(diagnostics::selftest::run_diagnostics_selftests): Call
+	markup_cc_tests.
+	* diagnostics/diagnostics-selftests.h
+	(diagnostics::selftest::markup_cc_tests): New decl.
+	* diagnostics/markup.cc: New file.
+	* diagnostics/markup.h: New file.
+
+2026-11-13  Trevor Saunders  <tbsaunde@tbsaunde.org>
+
+	* config/arm/arm.h (thumb_call_via_label): Move inside the
+	!GENERATOR_FILE && !USED_FOR_TARGET block.
+
+2026-11-13  Andrea Pinski  <andrew.pinski@oss.qualcomm.com>
+
+	* range-op-ptr.cc (class operator_pointer_diff): Add
+	op1_op2_relation.
+	(operator_pointer_diff::op1_op2_relation): New method.
+
+2026-11-13  Andrea Pinski  <andrew.pinski@oss.qualcomm.com>
+
+	* gimple-range-fold.cc (fur_source::register_outgoing_edges): Use
+	the range of the rhs1/rsh2 on that edge rather than varry.
+	* range-op.cc (operator_minus::op1_op2_relation): Add
+	case for signed types.
+
+2026-11-13  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/128662
+	* config/i386/i386.h (TARGET_AVOID_FALSE_DEP_FOR_BSR): New.
+	* config/i386/x86-tune.def (X86_TUNE_AVOID_FALSE_DEP_FOR_BSR):
+	New tuning.
+	* config/i386/i386.md (bsr_rex64): Convert to
+	define_insn_and_split.  Split to *bsr_rex64_falsedep when
+	TARGET_AVOID_FALSE_DEP_FOR_BSR is set and the destination is not
+	mentioned in the source.
+	(bsr_rex64_1): Ditto.  Split to *bsr_rex64_1_falsedep.
+	(bsr_rex64_1_zext): Ditto.  Split to *bsr_rex64_1_zext_falsedep.
+	(bsr): Ditto.  Split to *bsr_falsedep.
+	(bsr_1): Ditto.  Split to *bsr_1_falsedep.
+	(bsr_zext_1): Ditto.  Split to *bsr_zext_1_falsedep.
+	(*bsr_rex64_falsedep, *bsr_rex64_1_falsedep)
+	(*bsr_rex64_1_zext_falsedep, *bsr_falsedep, *bsr_1_falsedep)
+	(*bsr_zext_1_falsedep): New insns.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_types_unsigned_shift_qualifiers, TYPES_USHIFTIMM): Delete.
+	* config/aarch64/aarch64-neon-builtins-base.cc (vshll_n, vshll_high_n):
+	New function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the sshll_n,
+	ushll_n, sshll2_n and ushll2_n builtins, which no longer have any
+	caller.
+	* config/aarch64/arm_neon.h (vshll_high_n_s16, vshll_high_n_s32,
+	vshll_high_n_s8, vshll_high_n_u16, vshll_high_n_u32, vshll_high_n_u8,
+	vshll_n_s16, vshll_n_s32, vshll_n_s8, vshll_n_u16, vshll_n_u32,
+	vshll_n_u8): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_types_ternopu_imm_qualifiers,
+	aarch64_types_shift2_to_unsigned_qualifiers,
+	aarch64_types_ternop_s_imm_qualifiers, TYPES_TERNOPUI, TYPES_USHIFT2IMM,
+	TYPES_SHIFT2IMM_UUSS, TYPES_SETREG, TYPES_SHIFTINSERT, TYPES_SHIFTACC,
+	TYPES_SHIFT2IMM): Delete.
+	* config/aarch64/aarch64-neon-builtins-base.cc (code_for_shrn2_n): New
+	function.
+	(vshrn_n, vqshrn_n, vqshrnh_n, vqshrns_n, vqshrnd_n, vshrn_high_n,
+	vqshrn_high_n, vrshrn_n, vqrshrn_n, vqrshrnh_n, vqrshrns_n,
+	vqrshrnd_n, vrshrn_high_n, vqrshrn_high_n, vqshrun_n, vqshrunh_n,
+	vqshruns_n, vqshrund_n, vqrshrun_n, vqrshrunh_n, vqrshruns_n,
+	vqrshrund_n, vqshrun_high_n, vqrshrun_high_n): New function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the narrowing shift
+	builtins, which no longer have any caller.
+	* config/aarch64/arm_neon.h (vqrshrn_high_n_s16, vqrshrn_high_n_s32,
+	vqrshrn_high_n_s64, vqrshrn_high_n_u16, vqrshrn_high_n_u32,
+	vqrshrn_high_n_u64, vqrshrn_n_s16, vqrshrn_n_s32, vqrshrn_n_s64,
+	vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64, vqrshrnd_n_s64,
+	vqrshrnd_n_u64, vqrshrnh_n_s16, vqrshrnh_n_u16, vqrshrns_n_s32,
+	vqrshrns_n_u32, vqrshrun_high_n_s16, vqrshrun_high_n_s32,
+	vqrshrun_high_n_s64, vqrshrun_n_s16, vqrshrun_n_s32, vqrshrun_n_s64,
+	vqrshrund_n_s64, vqrshrunh_n_s16, vqrshruns_n_s32, vqshrn_high_n_s16,
+	vqshrn_high_n_s32, vqshrn_high_n_s64, vqshrn_high_n_u16,
+	vqshrn_high_n_u32, vqshrn_high_n_u64, vqshrn_n_s16, vqshrn_n_s32,
+	vqshrn_n_s64, vqshrn_n_u16, vqshrn_n_u32, vqshrn_n_u64, vqshrnd_n_s64,
+	vqshrnd_n_u64, vqshrnh_n_s16, vqshrnh_n_u16, vqshrns_n_s32,
+	vqshrns_n_u32, vqshrun_high_n_s16, vqshrun_high_n_s32,
+	vqshrun_high_n_s64, vqshrun_n_s16, vqshrun_n_s32, vqshrun_n_s64,
+	vqshrund_n_s64, vqshrunh_n_s16, vqshruns_n_s32, vrshrn_high_n_s16,
+	vrshrn_high_n_s32, vrshrn_high_n_s64, vrshrn_high_n_u16,
+	vrshrn_high_n_u32, vrshrn_high_n_u64, vrshrn_n_s16, vrshrn_n_s32,
+	vrshrn_n_s64, vrshrn_n_u16, vrshrn_n_u32, vrshrn_n_u64,
+	vshrn_high_n_s16, vshrn_high_n_s32, vshrn_high_n_s64, vshrn_high_n_u16,
+	vshrn_high_n_u32, vshrn_high_n_u64, vshrn_n_s16, vshrn_n_s32,
+	vshrn_n_s64, vshrn_n_u16, vshrn_n_u32, vshrn_n_u64): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_types_ternop_p_imm_qualifiers,
+	aarch64_types_unsigned_shiftacc_qualifiers, TYPES_SHIFTINSERTP,
+	TYPES_USHIFTACC): Delete.
+	* config/aarch64/aarch64-neon-builtins-base.cc (code_for_si_n): New
+	function.
+	(vsli_n, vsliq_n, vslid_n, vsri_n, vsriq_n, vsrid_n): New function
+	bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the ssli_n, usli_n,
+	ssri_n and usri_n builtins, which no longer have any caller.
+	* config/aarch64/arm_neon.h (vsli_n_p16, vsli_n_p64, vsli_n_p8,
+	vsli_n_s16, vsli_n_s32, vsli_n_s64, vsli_n_s8, vsli_n_u16, vsli_n_u32,
+	vsli_n_u64, vsli_n_u8, vslid_n_s64, vslid_n_u64, vsliq_n_p16,
+	vsliq_n_p64, vsliq_n_p8, vsliq_n_s16, vsliq_n_s32, vsliq_n_s64,
+	vsliq_n_s8, vsliq_n_u16, vsliq_n_u32, vsliq_n_u64, vsliq_n_u8,
+	vsri_n_p16, vsri_n_p64, vsri_n_p8, vsri_n_s16, vsri_n_s32, vsri_n_s64,
+	vsri_n_s8, vsri_n_u16, vsri_n_u32, vsri_n_u64, vsri_n_u8, vsrid_n_s64,
+	vsrid_n_u64, vsriq_n_p16, vsriq_n_p64, vsriq_n_p8, vsriq_n_s16,
+	vsriq_n_s32, vsriq_n_s64, vsriq_n_s8, vsriq_n_u16, vsriq_n_u32,
+	vsriq_n_u64, vsriq_n_u8): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-neon-builtins-base.cc (code_for_qshl_n): New
+	function.
+	(vqshl_n, vqshlq_n, vqshlb_n, vqshlh_n, vqshls_n, vqshld_n, vqshlu_n,
+	vqshluq_n, vqshlub_n, vqshluh_n, vqshlus_n, vqshlud_n): New function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the sqshl_n,
+	uqshl_n and sqshlu_n builtins, which no longer have any caller.
+	* config/aarch64/arm_neon.h (vqshl_n_s16, vqshl_n_s32, vqshl_n_s64,
+	vqshl_n_s8, vqshl_n_u16, vqshl_n_u32, vqshl_n_u64, vqshl_n_u8,
+	vqshlb_n_s8, vqshlb_n_u8, vqshld_n_s64, vqshld_n_u64, vqshlh_n_s16,
+	vqshlh_n_u16, vqshlq_n_s16, vqshlq_n_s32, vqshlq_n_s64, vqshlq_n_s8,
+	vqshlq_n_u16, vqshlq_n_u32, vqshlq_n_u64, vqshlq_n_u8, vqshls_n_s32,
+	vqshls_n_u32, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshlu_n_s8,
+	vqshlub_n_s8, vqshlud_n_s64, vqshluh_n_s16, vqshluq_n_s16,
+	vqshluq_n_s32, vqshluq_n_s64, vqshluq_n_s8, vqshlus_n_s32): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-neon-builtins-base.cc (vrshr_n, vrshrq_n,
+	vrshrd_n, vrsra_n, vrsraq_n, vrsrad_n): New function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the srshr_n,
+	urshr_n, srsra_n and ursra_n builtins, which no longer have any
+	caller.
+	* config/aarch64/arm_neon.h (vrshr_n_s16, vrshr_n_s32, vrshr_n_s64,
+	vrshr_n_s8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshr_n_u8,
+	vrshrd_n_s64, vrshrd_n_u64, vrshrq_n_s16, vrshrq_n_s32, vrshrq_n_s64,
+	vrshrq_n_s8, vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrq_n_u8,
+	vrsra_n_s16, vrsra_n_s32, vrsra_n_s64, vrsra_n_s8, vrsra_n_u16,
+	vrsra_n_u32, vrsra_n_u64, vrsra_n_u8, vrsrad_n_s64, vrsrad_n_u64,
+	vrsraq_n_s16, vrsraq_n_s32, vrsraq_n_s64, vrsraq_n_s8, vrsraq_n_u16,
+	vrsraq_n_u32, vrsraq_n_u64, vrsraq_n_u8): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_general_gimple_fold_builtin): Remove the sshl and ushl cases,
+	which the framework now handles.
+	* config/aarch64/aarch64-neon-builtins-base.cc (code_for_qshl): New
+	function.
+	(vshl, vshlq, vshld, vrshl, vrshlq, vrshld, vqshl, vqshlq, vqshlb,
+	vqshlh, vqshls, vqshld, vqrshl, vqrshlq, vqrshlb, vqrshlh, vqrshls,
+	vqrshld): New function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the sshl, ushl,
+	srshl, urshl, sqshl, uqshl, sqrshl and uqrshl builtins, which no
+	longer have any caller.
+	* config/aarch64/arm_neon.h (vqrshl_s16, vqrshl_s32, vqrshl_s64,
+	vqrshl_s8, vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshl_u8, vqrshlb_s8,
+	vqrshlb_u8, vqrshld_s64, vqrshld_u64, vqrshlh_s16, vqrshlh_u16,
+	vqrshlq_s16, vqrshlq_s32, vqrshlq_s64, vqrshlq_s8, vqrshlq_u16,
+	vqrshlq_u32, vqrshlq_u64, vqrshlq_u8, vqrshls_s32, vqrshls_u32,
+	vqshl_s16, vqshl_s32, vqshl_s64, vqshl_s8, vqshl_u16, vqshl_u32,
+	vqshl_u64, vqshl_u8, vqshlb_s8, vqshlb_u8, vqshld_s64, vqshld_u64,
+	vqshlh_s16, vqshlh_u16, vqshlq_s16, vqshlq_s32, vqshlq_s64, vqshlq_s8,
+	vqshlq_u16, vqshlq_u32, vqshlq_u64, vqshlq_u8, vqshls_s32, vqshls_u32,
+	vrshl_s16, vrshl_s32, vrshl_s64, vrshl_s8, vrshl_u16, vrshl_u32,
+	vrshl_u64, vrshl_u8, vrshld_s64, vrshld_u64, vrshlq_s16, vrshlq_s32,
+	vrshlq_s64, vrshlq_s8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshlq_u8,
+	vshl_s16, vshl_s32, vshl_s64, vshl_s8, vshl_u16, vshl_u32, vshl_u64,
+	vshl_u8, vshld_s64, vshld_u64, vshlq_s16, vshlq_s32, vshlq_s64,
+	vshlq_s8, vshlq_u16, vshlq_u32, vshlq_u64, vshlq_u8): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_general_gimple_fold_builtin): Remove the ashl, ashr,
+	ashr_simd, lshr and lshr_simd cases which the framework now handles.
+	* config/aarch64/aarch64-neon-builtins-base.cc (vshl_n, vshlq_n,
+	vshld_n, vshr_n, vshrq_n, vshrd_n, vsra_n, vsraq_n, vsrad_n): New
+	function bases.
+	* config/aarch64/aarch64-neon-builtins-base.def: Add the corresponding
+	function group.
+	* config/aarch64/aarch64-simd-builtins.def: Delete the ashl, ashr,
+	ashr_simd, lshr, lshr_simd, ssra_n and usra_n builtins, which no
+	longer have any caller.
+	* config/aarch64/aarch64-simd.md (aarch64_<sra_op>sra_n<mode>,
+	aarch64_<sur>sra_ndi, aarch64_ashr_simddi, aarch64_lshr_simddi): Delete.
+	(aarch64_<sra_op>sra_n<mode>_insn): Rename to ...
+	(*aarch64_<sra_op>sra_n<mode>): ... this, since the expander that
+	called it is gone and combine reaches it by matching.
+	* config/aarch64/aarch64.md (*aarch64_<sra_op>sra_ndi): New pattern.
+	* config/aarch64/iterators.md (UNSPEC_SSRA, UNSPEC_USRA, VSRA): Delete,
+	now that the last pattern using them is gone.
+	(sur): Drop the UNSPEC_SSRA and UNSPEC_USRA entries.
+	* config/aarch64/predicates.md (aarch64_shift_imm64_di): Delete.
+	* config/aarch64/arm_neon.h (vshl_n_s16, vshl_n_s32, vshl_n_s64,
+	vshl_n_s8, vshl_n_u16, vshl_n_u32, vshl_n_u64, vshl_n_u8, vshld_n_s64,
+	vshld_n_u64, vshlq_n_s16, vshlq_n_s32, vshlq_n_s64, vshlq_n_s8,
+	vshlq_n_u16, vshlq_n_u32, vshlq_n_u64, vshlq_n_u8, vshr_n_s16,
+	vshr_n_s32, vshr_n_s64, vshr_n_s8, vshr_n_u16, vshr_n_u32, vshr_n_u64,
+	vshr_n_u8, vshrd_n_s64, vshrd_n_u64, vshrq_n_s16, vshrq_n_s32,
+	vshrq_n_s64, vshrq_n_s8, vshrq_n_u16, vshrq_n_u32, vshrq_n_u64,
+	vshrq_n_u8, vsra_n_s16, vsra_n_s32, vsra_n_s64, vsra_n_s8, vsra_n_u16,
+	vsra_n_u32, vsra_n_u64, vsra_n_u8, vsrad_n_s64, vsrad_n_u64,
+	vsraq_n_s16, vsraq_n_s32, vsraq_n_s64, vsraq_n_s8, vsraq_n_u16,
+	vsraq_n_u32, vsraq_n_u64, vsraq_n_u8): Delete.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* config/aarch64/aarch64-acle-builtins.h (TYPES_b_signed,
+	TYPES_h_signed): New macros.
+	(b_signed, h_signed): New type arrays.
+	(TYPES_b_integer, TYPES_h_integer, TYPES_d_integer): Compose from the
+	corresponding signed list, as TYPES_s_integer already does.
+	* config/aarch64/aarch64-neon-builtins-base.cc (build_shift_right): New
+	function.
+	(gimple_insn_based_function): New class.
+	(gimple_exact_insn): Derive from it.
+	(gimple_code_for_mode_function, gimple_iterator_function,
+	gimple_shift_imm, gimple_shift_reg): New classes.
+	(gimple_rtx_code_function, gimple_unspec_based_function): New typedefs.
+	* config/aarch64/aarch64-neon-builtins-shapes.cc (shift_right,
+	shift_right_narrow, shift_left_long): New checkers.
+	* config/aarch64/aarch64-sve-builtins-shapes.cc (parse_element_type):
+	Handle `d<elt>`.
+	* config/aarch64/aarch64-simd.md (aarch64_<sra_op>rsra_n<mode>): Rename
+	to ...
+	(@aarch64_<sra_op>rsra_n<mode>): ... this.
+	(aarch64_<sur>shl<mode>): Rename to ...
+	(@aarch64_<sur>shl<mode>): ... this.
+	(aarch64_<sur>q<r>shl<mode>): Rename to ...
+	(@aarch64_<sur>q<r>shl<mode>): ... this.
+	(aarch64_<sur>shll_n<mode>): Rename to ...
+	(@aarch64_<sur>shll_n<mode>): ... this.
+	(aarch64_<sur>shll2_n<mode>): Rename to ...
+	(@aarch64_<sur>shll2_n<mode>): ... this.
+	(aarch64_<sra_op>rshr_n<mode>): Rename to ...
+	(@aarch64_<sra_op>rshr_n<mode>): ... this.
+	(aarch64_<sur>s<lr>i_n<mode>): Rename to ...
+	(@aarch64_<sur>s<lr>i_n<mode>): ... this.
+	(aarch64_<sur>qshl<u>_n<mode>): Rename to ...
+	(@aarch64_<sur>qshl<u>_n<mode>): ... this.
+	(aarch64_<shrn_op>shrn_n<mode>): Rename to ...
+	(@aarch64_<shrn_op>shrn_n<mode>): ... this.
+	(aarch64_<shrn_op>rshrn_n<mode>): Rename to ...
+	(@aarch64_<shrn_op>rshrn_n<mode>): ... this.
+	(aarch64_sqshrun_n<mode>): Rename to ...
+	(@aarch64_sqshrun_n<mode>): ... this.
+	(aarch64_sqrshrun_n<mode>): Rename to ...
+	(@aarch64_sqrshrun_n<mode>): ... this.
+	(aarch64_<shrn_op><sra_op>shrn2_n<mode>): Rename to ...
+	(@aarch64_<shrn_op><sra_op>shrn2_n<mode>): ... this.
+	(aarch64_<shrn_op>rshrn2_n<mode>): Rename to ...
+	(@aarch64_<shrn_op>rshrn2_n<mode>): ... this.
+	(aarch64_sqshrun2_n<mode>): Rename to ...
+	(@aarch64_sqshrun2_n<mode>): ... this.
+	(aarch64_sqrshrun2_n<mode>): Rename to ...
+	(@aarch64_sqrshrun2_n<mode>): ... this.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* config/aarch64/aarch64-builtins.cc
+	(aarch64_general_gimple_fold_builtin): Delete cases for handling
+	`reduc_{u,s}{min,max}_scal_`.
+	* config/aarch64/aarch64-neon-builtins-base.cc (struct
+	gimple_reduce_minmax): New struct.
+	* config/aarch64/aarch64-neon-builtins-base.def (vminv, vminvq,
+	vmaxv, vmaxvq): New intrinsic function declarations.
+	* config/aarch64/aarch64-simd-builtins.def: Delete
+	`reduc_{us}{min,max}{,_nan}_scal_` builtin functions.
+	* config/aarch64/aarch64-simd.md (reduc_<optab>_scal_<mode>):
+	Rename to ...
+	(@reduc_<optab>_scal_<mode>): ...this, so that it is callable
+	from `gimple_reduce_minmax::expand ()`.
+	* config/aarch64/arm_neon.h
+	(vpmaxqd_f64, vpmaxs_f32, vpmaxnmqd_f64, vpmaxnms_f32,
+	vpminqd_f64, vpmins_f32, vpminnmqd_f64): Call the intrinsic
+	(v{min,max}{,nm}v) functions rather than the now-deleted
+	`__builtin_aarch64_reduc_s{min,max}_scal` functions.
+	(vmaxv_f32, vmaxvq_f32, vmaxvq_f64, vminv_f32, vminvq_f32,
+	vminvq_f64, vmaxv_f16, vmaxvq_f16, vminv_f16, vminvq_f16):
+	Delete intrinsic function definitions.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* config/aarch64/aarch64-neon-builtins-base.cc (struct
+	gimple_minmax): New struct.
+	* config/aarch64/aarch64-neon-builtins-base.def (vmax, vmaxq,
+	vmin, vminq): New intrinsic function definitions.
+	* config/aarch64/aarch64-simd-builtins.def (smax, smin, umax,
+	umin, fmax, fmin): Delete now-unused builtin function declarations.
+	(fmax_nan, fmin_nan): Only define for float16_t, as they are
+	only now called from `arm_fp16.h`.
+	* config/aarch64/arm_fp16.h (vmaxh_f16, vminh_f16): Call the
+	correct `_nan` variant of the `__aarch64_builtin` functions.
+	(vmaxnmh_f16, vminnmh_f16): Use the platform-agnostic
+	`__builtin_f{min,max}f16` functions rather than the now-deleted
+	aarch64-specific builtins.
+	* config/aarch64/arm_neon.h (vmax_f32, vmax_f64, vmaxq_f32,
+	vmaxq_f64, vmin_f32, vmin_f64, vminq_f32, vminq_f64, vmax_f16,
+	vmaxq_f16, vmin_f16, vminq_f16): Delete intrinsic function
+	definitions.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* config/aarch64/aarch64-neon-builtins-base.cc
+	(build_ifn_call): New function.
+	(build_var): New function.
+	(gimple_ifn::fold): Call `build_ifn_call`.
+	(struct gimple_fused_mla): New struct.
+	* config/aarch64/aarch64-acle-builtins.cc
+	(gimple_folder::force_val): Call `make_ssa_name` if necessary.
+	* config/aarch64/aarch64-neon-builtins-base.def
+	(vfma, vfmaq, vfma_n, vfmaq_n, vfma_lane, vfma_laneq,
+	vfmaq_lane, vfmaq_laneq, vfmas_lane, vfmas_laneq, vfmad_lane,
+	vfmad_laneq, vfms, vfmsq, vfms_n, vfmsq_n, vfms_lane,
+	vfms_laneq, vfmsq_lane, vfmsq_laneq, vfmss_lane, vfmss_laneq,
+	vfmsd_lane, vfmsd_laneq, and the FP16 forms of each): New
+	intrinsic function declarations.
+	* config/aarch64/aarch64-simd-builtins.def
+	(fma, fnma): Delete `__builtin_aarch64` function declarations.
+	* config/aarch64/aarch64-simd.md
+	(fma<mode>4<vczle><vczbe>,
+	*aarch64_fma4_elt<mode><vczle><vczbe>,
+	*aarch64_fma4_elt_<vswap_width_name><mode><vczle><vczbe>,
+	*aarch64_fma4_elt_from_dup<mode><vczle><vczbe>,
+	*aarch64_fma<mode>4_elt_to_scalar): Extend to cover HF vector
+	modes, reformat, add comments.
+	(fnma<mode>4<vczle><vczbe>,
+	*aarch64_fnma4_elt<mode><vczle><vczbe>
+	*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>
+	*aarch64_fnma4_elt_from_dup<mode><vczle><vczbe>
+	*aarch64_fnma<mode>4_elt_from_to_scalar):
+	Likewise.
+	(*aarch64_fma4_elt_to_64v2df, *aarch64_fnma4_elt_to_64v2df):
+	Rename to ...
+	(*aarch64_fma<mode>4_elt_to_scalar,
+	*aarch64_fnma<mode>4_elt_to_scalar): ...these.
+	(*aarch64_fnma4_elt<mode><vczle><vczbe>_alt,
+	*aarch64_fnma4_elt_<vswap_width_name><mode><vczle><vczbe>_alt,
+	*aarch64_fnma4_elt_from_dup<mode><cvzle><vczbe>_alt,
+	*aarch64_fnma4<mode>4_elt_to_scalar_alt): New insns to match
+	permuted variants.
+	* config/aarch64/arm_neon.h
+	(vfma_f64, vfma_f32, vfmaq_f32, vfmaq_f64, vfma_n_f32,
+	vfma_n_f64, vfmaq_n_f32, vfmaq_n_f64, vfma_lane_f32,
+	vfma_lane_f64, vfma_laneq_f32, vfma_laneq_f64,
+	vfmaq_lane_f32, vfmaq_lane_f64, vfmaq_laneq_f32,
+	vfmaq_laneq_f64, vfms_f64, vfms_f32, vfmsq_f32, vfmsq_f64,
+	vfms_n_f32, vfms_n_f64, vfmsq_n_f32, vfmsq_n_f64,
+	vfms_lane_f32, vfms_lane_f64, vfms_laneq_f32, vfms_laneq_f64,
+	vfmsq_lane_f32, vfmsq_lane_f64, vfmsq_laneq_f32,
+	vfmsq_laneq_f64, vfma_f16, vfmaq_f16, vfms_f16, vfmsq_f16,
+	vfma_lane_f16, vfmaq_lane_f16, vfma_laneq_f16,
+	vfmaq_laneq_f16, vfma_n_f16, vfmaq_n_f16, vfms_lane_f16,
+	vfmsq_lane_f16, vfms_laneq_f16, vfmsq_laneq_f16, vfms_n_f16,
+	vfmsq_n_f16): Delete function definitions.
+	* config/aarch64/iterators.md (VDQHSF): New mode iterator.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* config/aarch64/aarch64-acle-builtins.h (TYPES_neon_mla,
+	TYPES_neon_mla_lane): New type arrays.
+	* config/aarch64/aarch64-neon-builtins-base.cc (struct
+	multiply_accumulate): New struct.
+	* config/aarch64/aarch64-neon-builtins-base.def
+	(vmla, vmlaq, vmla_n, vmlaq_n, vmla_lane, vmla_laneq,
+	vmlaq_lane, vmlaq_laneq, vmls, vmlsq, vmls_n, vmlsq_n,
+	vmls_lane, vmls_laneq, vmlsq_lane, vmlsq_laneq): New function
+	declarations.
+	* config/aarch64/aarch64-simd-builtins.def: Delete
+	`__builtin_aarch64_*` functions.
+	* config/aarch64/aarch64-simd.md (aarch64_float_mla<mode>,
+	aarch64_float_mls<mode>, aarch64_float_mla_n<mode>,
+	aarch64_float_mls_n<mode>, aarch64_float_mla_lane<mode>,
+	aarch64_float_mls_lane<mode>, aarch64_float_mla_laneq<mode>,
+	aarch64_float_mls_laneq<mode>): Delete now-obsolete insns.
+	* config/aarch64/arm_neon.h: (vmla_n_f32, vmla_n_s16,
+	vmla_n_s32, vmla_n_u16, vmla_n_u32, vmla_s8, vmla_s16,
+	vmla_s32, vmla_u8, vmla_u16, vmla_u32, vmlaq_n_f32,
+	vmlaq_n_s16, vmlaq_n_s32, vmlaq_n_u16, vmlaq_n_u32, vmlaq_s8,
+	vmlaq_s16, vmlaq_s32, vmlaq_u8, vmlaq_u16, vmlaq_u32,
+	vmls_n_f32, vmls_n_s16, vmls_n_s32, vmls_n_u16, vmls_n_u32,
+	vmls_s8, vmls_s16, vmls_s32, vmls_u8, vmls_u16, vmls_u32,
+	vmlsq_n_f32, vmlsq_n_s16, vmlsq_n_s32, vmlsq_n_u16,
+	vmlsq_n_u32, vmlsq_s8, vmlsq_s16, vmlsq_s32, vmlsq_u8,
+	vmlsq_u16, vmlsq_u32, vmla_f32, vmla_f64, vmlaq_f32,
+	vmlaq_f64, vmla_lane_f32, vmla_lane_s16, vmla_lane_s32,
+	vmla_lane_u16, vmla_lane_u32, vmla_laneq_f32, vmla_laneq_s16,
+	vmla_laneq_s32, vmla_laneq_u16, vmla_laneq_u32,
+	vmlaq_lane_f32, vmlaq_lane_s16, vmlaq_lane_s32,
+	vmlaq_lane_u16, vmlaq_lane_u32, vmlaq_laneq_f32,
+	vmlaq_laneq_s16, vmlaq_laneq_s32, vmlaq_laneq_u16,
+	vmlaq_laneq_u32, vmls_f32, vmls_f64, vmlsq_f32, vmlsq_f64,
+	vmls_lane_f32, vmls_lane_s16, vmls_lane_s32, vmls_lane_u16,
+	vmls_lane_u32, vmls_laneq_f32, vmls_laneq_s16, vmls_laneq_s32,
+	vmls_laneq_u16, vmls_laneq_u32, vmlsq_lane_f32,
+	vmlsq_lane_s16, vmlsq_lane_s32, vmlsq_lane_u16,
+	vmlsq_lane_u32, vmlsq_laneq_f32, vmlsq_laneq_s16,
+	vmlsq_laneq_s32, vmlsq_laneq_u16, vmlsq_laneq_u32): Delete
+	function definitions.
+
+2026-11-13  Kyrylo Tkachov  <ktkachov@nvidia.com>
+
+	* config/aarch64/aarch64-acle-builtins.cc (attribute_cache): New
+	variable.
+	(function_builder::get_attributes): Cache the attribute list for each
+	distinct combination of inputs.
+
+2026-11-13  Suganya Thirumurthy  <Suganya.Thirumurthy@amd.com>
+
+	* config/i386/i386.cc (ix86_veclibabi_aocl): Update vector
+	widths for the tan, atan, exp10, asin, acos, tanh and cosh
+	functions. Add the erfc, cbrt and atan2 new functions.
+	* doc/invoke.texi (x86 Options) [-mveclibabi]: Add amd_vrd2_acos,
+	amd_vrd4_acos, amd_vrd8_acos, amd_vrs8_acosf, amd_vrd2_asin,
+	amd_vrd4_asin, amd_vrd4_atan, amd_vrd2_atan2, amd_vrd4_atan2,
+	amd_vrd8_atan2, amd_vrd2_cbrt, amd_vrs4_cbrtf, amd_vrs8_cbrtf,
+	amd_vrd2_cosh, amd_vrd4_cosh, amd_vrd8_cosh, amd_vrs16_coshf,
+	amd_vrd2_erfc, amd_vrd4_erfc, amd_vrd8_erfc, amd_vrs4_erfcf,
+	amd_vrs8_erfcf, amd_vrs16_erfcf, amd_vrd4_exp10, amd_vrd8_exp10,
+	amd_vrs8_exp10f, amd_vrs16_exp10f, amd_vrs4_tanf, amd_vrs8_tanf,
+	amd_vrd2_tanh, amd_vrd4_tanh and amd_vrd8_tanh.
+
+2026-11-13  LIU Hao  <lh_mouse@126.com>
+
+	* ginclude/stddef.h: Exclude `__float128` from `max_align_t` for MinGW
+	targets.
+
+2026-11-13  Jiawei  <jiawei@iscas.ac.cn>
+
+	* config/riscv/bitmanip.md: Add a splitter for masked inverted
+	bit extraction.
+
+2026-11-13  Kael Andrew Franco  <kaelfandrew@gmail.com>
+
+	PR ipa/128491
+	* trans-mem.cc (pass_ipa_tm::gate): Do not run on invalid code.
+
 2026-11-12  Andrew MacLeod  <amacleod@redhat.com>
 
 	PR tree-optimization/127915
diff --git a/gcc/DATESTAMP b/gcc/DATESTAMP
index 72440d7..3d54539 100644
--- a/gcc/DATESTAMP
+++ b/gcc/DATESTAMP
@@ -1 +1 @@
-20261113
+20261114
diff --git a/gcc/analyzer/ChangeLog b/gcc/analyzer/ChangeLog
index deb92ba..c758fd0 100644
--- a/gcc/analyzer/ChangeLog
+++ b/gcc/analyzer/ChangeLog
@@ -1,3 +1,2200 @@
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* string-scan.cc
+	(named_test_bit_vector::scan_for_first_zero_byte): Wrap definition
+	with #if CHECKING_P
+	* symbolic-bit-contents.cc (class named_test_bit_contents):
+	Likewise.
+	* symbolic-scalars.cc (class named_test_scalar): Likewise.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* access-diagram.cc: Add include of "diagnostics/markup.h".
+	Delete access_range, porting throughout to symbolic_bit_range,
+	using folded_symbolic_bit_range to get back some of the old
+	folding behavior that the diagram code relied on.  Port
+	region_offset to const symbolic_bit_offset &.
+	(pp_bit_size_t): Delete.
+	(get_access_size_str): Port to new types.
+	(bit_size_expr::maybe_get_formatted_str): Likewise.
+	(bit_size_expr::maybe_print_for_user): Delete.
+	(bit_size_expr::maybe_get_as_bytes): Delete.
+	(fold_svalue_for_access_diagram): New.
+	(case_fold_scalar_for_access_diagram): New.
+	(fold_scalar_for_access_diagram): New.
+	(fold_range_for_access_diagram): New.
+	(folded_symbolic_bit_range): New.
+	(access_range_contains_p): New.
+	(boundaries::comparator): New.
+	(boundaries::using offset_set): New using decl.
+	(boundaries::boundaries): Add node_mgr param.
+	(boundaries::add): Port to new types.
+	(boundaries::add_all_bytes_in_range): Likewise.
+	(boundaries::log): Likewise.
+	(boundaries::get_kind): Likewise.
+	(boundaries::begin): Likewise.
+	(boundaries::end): Likewise.
+	(boundaries::size): Likewise.
+	(boundaries::get_hard_boundaries_in_range): Likewise.
+	(boundaries::m_node_mgr): New field.
+	(boundaries::m_all_offsets): Convert from std::set<region_offset>
+	to offset_set.
+	(boundaries::m_hard_offsets): Likewise.
+	(bit_to_table_map::bit_to_table_map): Add node_mgr param and
+	initialize m_node_mgr.
+	(bit_to_table_map::populate): Drop "mgr" param.  Convert from
+	region_offset to symbolic_bit_offset.
+	(bit_to_table_map::get_table_rect): Convert to new types.
+	(bit_to_table_map::maybe_get_access_range_for_table_x): Likewise,
+	renaming to...
+	(bit_to_table_map::maybe_get_symbolic_bit_range_for_table_x):
+	...this.
+	(bit_to_table_map::log): Convert to new types.
+	(bit_to_table_map::get_table_x_for_offset): Likewise.
+	(bit_to_table_map::get_table_x_for_prev_offset): Likewise.
+	(bit_to_table_map::m_node_mgr): New field.
+	(bit_to_table_map::m_table_x_for_offset): Convert key from
+	region_offset to const symbolic_bit_offset *.
+	(bit_to_table_map::m_range_for_table_x): Convert value from
+	access_range to symbolic_bit_range.
+	(bit_to_table_map::m_table_x_for_prev_offset): New field.
+	(class svalue_spatial_item): Convert from access_range to
+	symbolic_bit_range throughout.
+	(class valid_region_spatial_item): Port to new types.
+	(class string_literal_spatial_item): Likewise.
+	(make_written_svalue_spatial_item): Likewise.
+	(make_existing_svalue_spatial_item): Likewise.
+	(class access_diagram_impl): Pass around node_manager.  Port to
+	new types.
+	(selftest::assert_eq_typeless_integer): Delete.
+	(ASSERT_EQ_TYPELESS_INTEGER): Delete.
+	(selftest::test_bit_size_expr_to_bytes): Delete.
+	(selftest::analyzer_access_diagram_cc_tests): Remove call to test.
+	* access-diagram.h (class bit_size_expr): Port from svalue to
+	symbolic_bit_size.
+	(struct access_operation): Port to new types.
+	* ana-state-to-diagnostic-state.cc: Port to new state
+	implementation.
+	* ana-state-to-diagnostic-state.h: Update from bit_range to
+	concrete_bit_range.
+	(analyzer_state_graph::m_node_mgr): New field.
+	* analyzer-logging.cc: Define INCLUDE_VECTOR.  Add include of
+	"text-art/theme.h".
+	(logger::logger): Initializem_text_art_theme.
+	* analyzer-logging.h (logger::get_text_art_theme): New.
+	(logger::m_text_art_theme): New.
+	* analyzer-selftests.cc: Add include of "stor-layout.h".
+	(make_string_constant): New.
+	(make_test_compound_type): Move here from region-model.cc.
+	(coord_test::coord_test): Likewise.
+	(run_analyzer_selftests): Drop call to analyzer_ranges_cc_tests.
+	Add calls to analyzer_region_model_manager_cc_tests,
+	analyzer_string_scan_cc_tests,
+	analyzer_symbolic_bit_contents_cc_tests,
+	analyzer_symbolic_bit_vectors_cc_tests,
+	analyzer_symbolic_memory_ranges_cc_tests,
+	analyzer_symbolic_nodes_cc_tests,
+	analyzer_symbolic_pointers_cc_tests,
+	analyzer_symbolic_ranges_cc_tests, and
+	analyzer_symbolic_scalars_cc_tests.
+	* analyzer-selftests.h (make_string_constant): New decl.
+	(make_test_compound_type): New decl.
+	(struct coord_test): New decl, moved from region-model.cc.
+	(analyzer_ranges_cc_tests): Delete decl.
+	(analyzer_region_model_manager_cc_tests): New decl.
+	(analyzer_string_scan_cc_tests): New decl.
+	(analyzer_symbolic_bit_contents_cc_tests): New decl.
+	(analyzer_symbolic_bit_vectors_cc_tests): New decl.
+	(analyzer_symbolic_memory_ranges_cc_tests): New decl.
+	(analyzer_symbolic_nodes_cc_tests): New decl.
+	(analyzer_symbolic_pointers_cc_tests): New decl.
+	(analyzer_symbolic_ranges_cc_tests): New decl.
+	(analyzer_symbolic_scalars_cc_tests): New decl.
+	* bounds-checking.cc (class out_of_bounds): Port from region to
+	symbolic::memory_range throughout.
+	(class concrete_out_of_bounds): Likewise, porting to new types.
+	(class concrete_past_the_end): Likewise.
+	(class concrete_buffer_overflow): Likewise.
+	(class concrete_buffer_over_read): Likewise.
+	(class concrete_buffer_underwrite): Likewise.
+	(class concrete_buffer_under_read): Likewise.
+	(class symbolic_past_the_end): Likewise.
+	(class symbolic_buffer_over_read): Likewise.
+	(strip_types): Delete.
+	(region_model::check_symbolic_bounds): Port to new types.
+	(maybe_get_integer_cst_tree): Delete.
+	(region_model::check_memory_range_bounds): New, based on
+	region_model::check_region_bounds, porting to new types.
+	(region_model::check_region_bounds): Reimplement in terms of
+	check_memory_range_bounds.
+	* call-details.cc: Drop include of deleted "analyzer/ranges.h".
+	(call_details::get_arg_as_sym_ptr): New.
+	(call_details::get_arg_as_num_bytes): New.
+	(call_details::get_arg_string_literal): Port from region_svalue
+	to symbolic::pointer.
+	(call_details::dump_to_pp): Drop.
+	(call_details::dump): Reimplement in terms of dump widget.
+	(call_details::make_dump_widget): Update type of param from "dwi"
+	to "nds".
+	(call_details::check_for_null_terminated_string_arg): Port
+	from svalue to symbolic::bit_vector.
+	(call_details::complain_about_overlap): Port to new
+	symbolic_byte_range implementation.
+	* call-details.h: Include "symbolic-pointers.h".
+	(call_details::get_arg_as_sym_ptr): New decl.
+	(call_details::get_arg_as_num_bytes): New decl.
+	(call_details::dump_to_pp): Drop.
+	(call_details::make_dump_widget): Update type of param from "dwi"
+	to "nds".
+	(call_details::check_for_null_terminated_string_arg): Port
+	from svalue to symbolic::bit_vector.
+	* call-string.cc: Include "analyzer/symbolic-nodes.h".
+	(call_string::element_t::make_dump_widget): New.
+	* call-string.h: Include "text-art/widget.h" and
+	"text-art/tree-widget.h".
+	(call_string::element_t::make_dump_widget): New decl.
+	(call_string::make_dump_widget): New decl.
+	* call-summary.cc (call_summary::get_user_facing_desc): Replace
+	SK_REGION case with SK_POINTER.
+	(call_summary::dump_to_pp): Delete.
+	(call_summary::dump_to_logger): New.
+	(call_summary::make_dump_widget): New.
+	(call_summary::dump): Reimplement in terms of dump widget.
+	(call_summary_replay::convert_svalue_from_summary_1):  Port to
+	new types.
+	(call_summary_replay::convert_bit_contents_from_summary): New.
+	(call_summary_replay::convert_key_from_summary): Delete.
+	(call_summary_replay::convert_bit_vector_from_summary): New.
+	(call_summary_replay::impl_bits_from_bytes): New.
+	(call_summary_replay::convert_scalar_from_summary): New.
+	(call_summary_replay::dump_to_pp): Delete.
+	(call_summary_replay::make_dump_widget): New.
+	(call_summary_replay::dump): Reimplement in terms of dump widget.
+	(call_summary_replay::dump_to_logger): New.
+	* call-summary.h (call_summary::dump_to_pp): Delete.
+	(call_summary::make_dump_widget): New.
+	(call_summary::dump): Reimplement in terms of dump widget.
+	(call_summary::dump_to_logger): New.
+	(call_summary::get_store_manager): Drop.
+	(call_summary_replay::get_ext_state): New accessor.
+	(call_summary_replay::convert_key_from_summary): Delete.
+	(call_summary_replay::convert_bit_contents_from_summary): New.
+	(call_summary_replay::convert_bit_vector_from_summary): New.
+	(call_summary_replay::convert_scalar_from_summary): New.
+	(call_summary_replay::dump_to_pp): Delete.
+	(call_summary_replay::make_dump_widget): New.
+	(call_summary_replay::dump): Reimplement in terms of dump widget.
+	(call_summary_replay::dump_to_logger): New.
+	(call_summary_replay::get_store_manager): Drop.
+	(call_summary_replay::impl_bits_from_bytes): New.
+	* checker-event.cc
+	(checker_event::maybe_make_diagnostic_state_graph): Update to
+	new way of dumping program_state instances.
+	* common.h (diagnostics::markup::node): New forward decl.
+	(diagnostics::markup::lowering_options): New forward decl.
+	(class integer_with_unit<U>): New forward decl.
+	(struct units::bit): New forward decl.
+	(struct units::byte): New forward decl.
+	(class symbolic::range<CVT>): New forward decl.
+	(class symbolic::node_dump_state): New forward decl.
+	(class symbolic::node_set<NC>): New forward decl.
+	(class symbolic::node_visitor): New forward decl.
+	(class symbolic::liveness_context): New forward decl.
+	(struct symbolic::markup_context): New forward decl.
+	(class symbolic::bit_contents): New forward decl.
+	(class symbolic::unfoldable_bit_contents): New forward decl.
+	(class symbolic::baseline_bit_contents): New forward decl.
+	(class symbolic::conjured_bit_contents): New forward decl.
+	(class symbolic::offset_bit_contents): New forward decl.
+	(class symbolic::uniform_bit_contents): New forward decl.
+	(class symbolic::bit_overlay): New forward decl.
+	(class symbolic::concrete_bit_overlay): New forward decl.
+	(class symbolic::symbolic_bit_overlay): New forward decl.
+	(class symbolic::scalar<CVT>): New forward decl.
+	(class symbolic::value_node): New forward decl.
+	(class symbolic::bit_vector): New forward decl.
+	(class symbolic::concat_bit_vector): New forward decl.
+	(class symbolic::conjured_bit_vector): New forward decl.
+	(class symbolic::constant_bit_vector): New forward decl.
+	(class symbolic::cropped_bit_vector): New forward decl.
+	(class symbolic::repeated_bit_vector): New forward decl.
+	(class symbolic::bit_vector_from_svalue): New forward decl.
+	(class symbolic::bit_vector_from_ubc): New forward decl.
+	(class symbolic::uniform_bit_vector): New forward decl.
+	(class symbolic::empty_bit_vector): New forward decl.
+	(class symbolic::poisoned_bit_vector): New forward decl.
+	(class symbolic::tristate_bit_vector): New forward decl.
+	(class symbolic::bit_contents_manager): New forward decl.
+	(class symbolic::bit_vector_manager): New forward decl.
+	(class symbolic::scalar_managers): New forward decl.
+	(class symbolic::scalar_manager<CVT>): New forward decl.
+	(symbolic_bit_range): New "using" decl.
+	(symbolic_byte_range): New "using" decl.
+	(class region_svalue): Replace forward decl with...
+	(class pointer_svalue): ...this.
+	(class sub_svalue): Drop forward decl of eliminated class.
+	(class repeated_svalue): Likewise.
+	(class bits_within_svalue): Likewise.
+	(class compound_svalue): Likewise.
+	(class conjured_svalue): Likewise.
+	(class svalue_from_bit_vector): New forward decl.
+	(svalue_set): Drop typedef.
+	(class store_manager): Drop forward decl of eliminated class.
+	(class setjmp_record): New forward decl.
+	(get_field_at_bit_offset): Drop decl.
+	(class region_offset): Delete.
+	(eval_region_offset_comparison): Drop decl.
+	(cmp_csts_and_types): New decl.
+	(strip_types): Delete decl of region_offset overload.
+	(enum class poison_kind): Move here from svalue.h.  Add "other".
+	(poison_kind_to_str): Move here from svalue.h.
+	(enum class baseline_state): New.
+	(baseline_state_to_str): New decl.
+	(enum class iter_result): New.
+	(append_pathvar_with_type): New decl.
+	* constraint-manager.cc: Add include of
+	"analyzer/liveness-context.h".
+	(class sval_finder): Update for changes to svalue subclasses.
+	(class dead_svalue_purger): Update to use
+	symbolic::liveness_context.
+	(constraint_manager::on_liveness_change): Likewise.
+	(class svalue_purger): Rename to...
+	(class node_purger): ...this and generalize from svalue to
+	symbolic::node.
+	(constraint_manager::purge_state_involving): Generalize from
+	svalue to symbolic::node.
+	(selftest::test_purging): Update for
+	region_model::purge_state_involving taking a reference rather than
+	a pointer.
+	* constraint-manager.h (constraint_manager::on_liveness_change):
+	Update decl to use symbolic::liveness_context.
+	(constraint_manager::purge_state_involving): Generalize from
+	svalue to symbolic::node.
+	* diagnostic-manager.cc (saved_diagnostic::dump_as_dot_node):
+	Update for dump changes.
+	(dump_to_logger): Update for changes to make_dump_widget.
+	(make_raw_dst_region_model): Set cfun and input_location.
+	(diagnostic_manager::prune_for_sm_diagnostic): Canonicalize the
+	input svalue and update throughout to make it clear whether we're
+	dealing with uncanonicalized or canonicalized svalue.
+	* engine.cc (impl_region_model_context::on_svalue_leak):
+	Canonicalize sval.
+	(impl_region_model_context::on_liveness_change): Update for
+	signature change.
+	(impl_region_model_context::on_unknown_change): Likewise.
+	(impl_region_model_context::purge_state_involving): Likewise.
+	(impl_region_model_context::on_state_leak): Use value_set rather
+	than svalue_set.
+	(exploded_node::dump_dot): Use monospace font.  Use
+	dump_node_tree_to_pp for dumping state.
+	(exploded_node::dump): Reimplement in terms of dump widget.
+	(exploded_node::dump_to_pp): Reimplement in terms of dump widget.
+	(exploded_node::dump_to_logger): New.
+	(exploded_node::make_dump_widget): New.
+	(exploded_graph::get_or_create_node): Use dump_to_logger.
+	(exploded_graph::process_node): Likewise.
+	(exploded_graph::process_node): Likewise.
+	(feasibility_problem::make_dump_widget): New.
+	(feasibility_problem::dump): New.
+	(feasibility_problem::dump_to_pp): Reimplement in terms of
+	dump widget.
+	(feasibility_problem::dump_to_logger): New.
+	(feasibility_state::maybe_update_for_edge): Use dump_to_logger.
+	(feasibility_state::make_dump_widget): New.
+	(feasibility_state::dump_to_pp): Reimplment in terms of dump
+	widget.
+	(enode_label::get_text): Drop state from label.
+	(exploded_graph::dump_exploded_nodes): Use
+	symbolic::dump_node_tree_to_file<program_state>.  Update for
+	simplified signature of program_state::dump.
+	* exploded-graph.h (impl_region_model_context::on_liveness_change):
+	Update signature.
+	(impl_region_model_context::on_unknown_change): Likewise.
+	(impl_region_model_context::purge_state_involving): Likewise.
+	(exploded_node::make_dump_widget): New decl.
+	(exploded_node::dump): Drop ext_state param.  Drop FILE *
+	overload.
+	(exploded_node::dump_to_pp): Drop ext_state param.
+	(exploded_node::dump_to_logger): New.
+	(feasibility_problem::make_dump_widget): New.
+	(feasibility_problem::dump): New.
+	(feasibility_problem::dump_to_logger): New.
+	(feasibility_state::dump_to_pp): Drop "simple" and "multiline"
+	params.
+	(feasibility_state::make_dump_widget): New.
+	* exploded-path.cc (exploded_path::feasible_p): Use
+	dump_to_logger.
+	(exploded_path::dump_to_pp): Update for change to
+	program_state::dump_to_pp.
+	* feasible-graph.cc (feasible_node::dump_dot): Update for change
+	to region_model::dump_to_pp.
+	(feasible_graph::dump_feasible_path): Likewise for change to
+	feasible_state::dump_to_pp.
+	* infinite-recursion.cc (class infinite_recursion_diagnostic):
+	Rename "uses_conjured_svalue_p" to "uses_conjured_value_p"
+	throughout.  Reimplement to work on conjured bit_vectors.
+	(contains_unknown_p): Generalize from svalue to symbolic::node.
+	(sufficiently_different_region_binding_p): Port to new
+	implementation, working on bit_contents.
+	* initializers.cc: New file.
+	* kf-analyzer.cc: Drop param to region_model::dump.
+	(class kf_analyzer_hexdump): New.
+	(register_known_analyzer_functions): Register it as
+	"__analyzer_hexdump".
+	* kf-lang-cp.cc (kf_dynamic_cast::impl_call_post): Port to new
+	implementation.
+	(kf_operator_delete::impl_call_post): Likewise.
+	* kf.cc: (kf_atomic_exchange::impl_call_pre): Likewise.
+	(kf_atomic_load::impl_call_pre): Likewise.
+	(kf_atomic_store::impl_call_pre): Likewise.
+	(kf_free::impl_call_post): Likewise.
+	(kf_memcpy_memmove::impl_call_pre): Likewise.
+	(kf_memset::impl_call_pre): Likewise.
+	(kf_mktemp_family::check_placeholder): Likewise.
+	(kf_putenv::impl_call_pre): Likewise.
+	(kf_realloc::impl_call_post): Likewise.
+	(kf_strdup::impl_call_pre): Likewise.
+	(kf_strcpy::impl_call_pre): Likewise.
+	(kf_strcat::impl_call_pre): Likewise.
+	(kf_strncpy::impl_call_post): Likewise.
+	* liveness-context.h: New file.
+	* ops.cc (operation_context::dump): Update for dump changes.
+	(call_and_return_op::replay_call_summary): Likewise.
+	(dump_op::execute): Likewise.
+	(phis_for_edge_op::update_state): Update for change to
+	purge_state_involving signature.
+	* poisoned-value-diagnostic.cc (poison_finder::visit_svalue): New.
+	(poison_finder::visit_bit_vector): New.
+	(poisoned_value_diagnostic::check_valid_fpath_p): Use
+	poison_finder rather than dyn_cast_poisoned_svalue.
+	* program-point.cc (program_point::dump): Reimplement in terms
+	of...
+	(program_point::make_dump_widget): New.
+	* program-point.h (program_point::make_dump_widget): New decl.
+	* program-state.cc: Include "analyzer/liveness-context.h".
+	(extrinsic_state::make_dump_widget): New.
+	(extrinsic_state::dump_to_pp): Delete.
+	(extrinsic_state::dump_to_file): Delete.
+	(extrinsic_state::dump): Delete.
+	(sm_state_map::make_dump_widget): Update for signature change.
+	Rework how states are dumped.  Add dumping of m_map_ubc_to_state.
+	(sm_state_map::is_empty_p): Add check on m_map_ubc_to_state.
+	(sm_state_map::operator==): Add comparison of m_map_ubc_to_state.
+	(sm_state_map::get_any_inherited_state_of_bit_vector): New.
+	(sm_state_map::get_state): Drop handling of sub_svalue.
+	Add handling of svalue_from_bit_vector.
+	(sm_state_map::impl_set_state): Reimplement handling of inherited
+	state in terms of m_map_ubc_to_state.
+	(sm_state_map::clear_all_per_svalue_state): Clear
+	m_map_ubc_to_state.
+	(sm_state_map::on_liveness_change): Port to
+	symbolic::liveness_context.
+	(sm_state_map::on_unknown_change): Generalize from svalue to
+	symbolic::value_node, adding support for bit_vector.
+	(sm_state_map::purge_state_involving): Likewise.
+	(sm_state_map::canonicalize_svalue): Handle nullptr.  Strip types
+	from symbolic pointers and from svalue_from_bit_vector.
+	(sm_state_map::validate): New.
+	(sm_state_map::replay_call_summary): Canonicalize svalues.
+	(program_state::print): Delete.
+	(program_state::dump_to_pp): Delete.
+	(program_state::dump_to_file): Delete.
+	(program_state::dump): Reimplement in terms of dump widget.
+	(program_state::dump_to_logger): New.
+	(program_state::make_dump_widget): Update for signature change.
+	Support passing in a label.
+	(program_state::can_purge_base_region_p): Reimplement.
+	(program_state::validate): Validate the sm_state_maps in
+	m_checker_states.
+	(log_set_of_svalues): Port from svalue_set to value_set.  Use
+	dump_to_logger.
+	(liveness_context::liveness_context): New.
+	(liveness_context::node_live_p): New.
+	(liveness_context::bits_live_p): New.
+	(liveness_context::known_live_ptr_to_base_region_p): New.
+	(liveness_context::set_known_liveness_for_node): New.
+	(liveness_context::dump_to_pp): New.
+	(liveness_context::make_dump_widget): New.
+	(program_state::detect_leaks): Reimplement, generalizing from
+	svalue to symbolic::value_node.
+	* program-state.h (extrinsic_state::dump_to_pp): Delete.
+	(extrinsic_state::dump_to_file): Delete.
+	(extrinsic_state::dump_to_logger): New.
+	(extrinsic_state::make_dump_widget): New.
+	(sm_state_map::make_dump_widget): Update signature.
+	(sm_state_map::dump): New.
+	(sm_state_map::on_liveness_change): Update signature.
+	(sm_state_map::on_unknown_change): Likewise.
+	(sm_state_map::purge_state_involving): Likewise.
+	(sm_state_map::validate): New.
+	(sm_state_map::get_any_inherited_state_of_bit_vector): New.
+	(sm_state_map::m_map_ubc_to_state): New field.
+	(program_state::dump_to_pp): Delete.
+	(program_state::dump_to_file): Delete.
+	(program_state::dump_to_logger): New.
+	(program_state::dump): Simplify signature.
+	(program_state::make_dump_widget): Update signature.
+	* ranges.cc: Deleted file; partially used when reimplementing
+	symbolic-ranges.cc.
+	* ranges.h: Deleted file; partially used when reimplementing
+	symbolic-ranges.h.
+	* record-layout.cc (record_layout::record_layout): Port from
+	bit_range to concrete_bit_range, and from bit_offset_t to
+	concrete_bit_offset.
+	(record_layout::get_item_at): Likewise.
+	(record_layout::maybe_pad_to): Likewise.
+	* record-layout.h (get_bit_position): New decl.
+	(get_field_at_bit_offset): New decl.
+	(class record_layout): Port from bit_range to concrete_bit_range,
+	and from bit_offset_t to concrete_bit_offset.
+	* region-model-asm.cc (region_model::on_asm_stmt): Update for
+	change to reachable_regs.  Drop store manager.  Pass baseline
+	state to get_or_create_cluster.
+	* region-model-manager.cc: Include "analyzer/symbolic-scalars.h",
+	"analyzer/record-layout.h", and "analyzer/analyzer-selftests.h".
+	(region_model_manager::region_model_manager): Drop m_store_mgr.
+	(region_model_manager::~region_model_manager): Drop cleanup of
+	dropped fields m_sub_values_map, m_repeated_values_map,
+	m_bits_within_values_map, m_compound_values_map, and
+	m_conjured_values_map.  Add cleanup of m_bit_vector_to_svalue_map.
+	(region_model_manager::get_or_create_initial_value): Handle
+	subregions as a cropping of the baseline contents of the base
+	region.
+	(region_model_manager::get_ptr_svalue): Port from region_svalue to
+	pointer_svalue.
+	(region_model_manager::maybe_fold_unaryop): Avoid creating
+	symbolic regions for pointer casts by simplifying (T*)(&REGION) to
+	((T*)&REGION).  Fold svalue_from_bit_vector.
+	(region_model_manager::maybe_undo_optimize_bit_field_compare):
+	Delete.
+	(region_model_manager::maybe_fold_binop): Handle
+	POINTER_PLUS_EXPR and LSHIFT_EXPR.  Fold pointer arithmetic within
+	a base region.  Drop handling of compound_svalue.
+	(region_model_manager::maybe_fold_sub_svalue): Delete.
+	(region_model_manager::get_or_create_sub_svalue): Delete.
+	(region_model_manager::maybe_fold_repeated_svalue): Delete.
+	(region_model_manager::get_or_create_repeated_svalue): Delete.
+	(region_model_manager::maybe_fold_svalue_from_bit_vector): New.
+	(canonicalize_ptr_type_for_bit_vector): New.
+	(get_bit_range_for_field): Delete.
+	(get_byte_range_for_field): Delete.
+	(get_field_at_byte_range): Delete.
+	(region_model_manager::maybe_fold_bits_within_svalue): Delete.
+	(region_model_manager::get_or_create_bits_within): Delete.
+	(region_model_manager::get_or_create_compound_svalue): Delete.
+	(region_model_manager::get_svalue_from_bit_vector): New.
+	(region_model_manager::get_svalue_from_scalar): New.
+	(conjured_purge::purge): Reimplement in symbolic-bit-vectors.cc.
+	(region_model_manager::get_or_create_conjured_svalue): Reimplement
+	in terms of svalue_from_bit_vector(conjured_bit_vector).
+	(region_model_manager::maybe_fold_sized_region_to_initial_field):
+	New.
+	(region_model_manager::get_sized_region): Call it.
+	(region_model_manager::get_cast_region):  Fold casts of symbolic
+	regions.
+	(region_model_manager::maybe_fold_symbolic_region): New.
+	(region_model_manager::get_symbolic_region): Add call to
+	maybe_fold_symbolic_region.
+	(region_model_manager::get_bit_range): Use concrete_bit_range
+	rather than bit_range.
+	(region_model_manager::log_stats): Update logging of
+	m_pointer_values_map.  Drop logging of deleted fields
+	m_sub_values_map, m_repeated_values_map, m_bits_within_values_map,
+	m_compound_values_map, m_conjured_values_map, and m_store_mgr. Add
+	logging of m_bit_vector_to_svalue_map.
+	(store_manager::log_stats): Delete.
+	(selftest::test_svalue_from_bit_vector): New.
+	(selftests::analyzer_region_model_manager_cc_tests): New.
+	* region-model-manager.h: Add includes of "svalue.h", "region.h",
+	and "known-function-manager.h".
+	(region_model_manager::get_ptr_svalue): Update param to
+	symbolic::pointer.
+	(region_model_manager::get_or_create_sub_svalue): Delete.
+	(region_model_manager::get_or_create_repeated_svalue): Delete.
+	(region_model_manager::get_or_create_bits_within): Delete.
+	(region_model_manager::get_or_create_compound_svalue): Delete.
+	(region_model_manager::get_svalue_from_bit_vector): New.
+	(region_model_manager::get_svalue_from_scalar): New.
+	(region_model_manager::get_bit_range): Convert from bit_range to
+	concrete_bit_range.
+	(region_model_manager::get_store_manager): Delete.
+	(region_model_manager::maybe_fold_sub_svalue): Delete.
+	(region_model_manager::maybe_fold_repeated_svalue): Delete.
+	(region_model_manager::maybe_fold_bits_within_svalue): Delete.
+	(region_model_manager::maybe_undo_optimize_bit_field_compare):
+	Delete.
+	(region_model_manager::maybe_fold_svalue_from_bit_vector): New.
+	(region_model_manager::maybe_fold_sized_region_to_initial_field):
+	New.
+	(region_model_manager::maybe_fold_symbolic_region): New.
+	(region_model_manager::pointer_values_map_t): Convert from
+	region_svalue to pointer_svalue.
+	(region_model_manager::bit_vector_to_svalue_map_t): New typedef.
+	(region_model_manager::m_bit_vector_to_svalue_map): New field.
+	(region_model_manager::sub_values_map_t): Drop.
+	(region_model_manager::m_sub_values_map): Drop.
+	(region_model_manager::repeated_values_map_t): Drop.
+	(region_model_manager::m_repeated_values_map): Drop.
+	(region_model_manager::bits_within_values_map_t): Drop.
+	(region_model_manager::m_bits_within_values_map): Drop.
+	(region_model_manager::compound_values_map_t): Drop.
+	(region_model_manager::m_compound_values_map): Drop.
+	(region_model_manager::conjured_values_map_t): Drop.
+	(region_model_manager::m_conjured_values_map): Drop.
+	(region_model_manager::m_store_mgr): Drop.
+	* region-model-reachability.cc: Add include of
+	"analyzer/liveness-context.h".
+	(recurse_into_children_p): New.
+	(reachable_regions::init_cluster): Port to
+	symbolic::liveness_context.
+	(reachable_regions::add): Port to new implementation of
+	binding_cluster contents.
+	(reachable_regions::handle_sval_cb): Update for generalization
+	to symbolic::value_node.
+	(reachable_regions::handle_sval): Rename to...
+	(reachable_regions::handle_value): ...this, generalizing from
+	svalue to symbolic::value_node.
+	(reachable_regions::handle_parm): Port to new implementation.
+	(reachable_regions::mark_escaped_clusters): Likewise.
+	(reachable_regions::dump_to_pp): Likewise.
+	* region-model-reachability.h (class reachable_regions): Use
+	value_set rather than svalue_set throughout.
+	(reachable_regions::handle_sval): Rename to...
+	(reachable_regions::handle_value): ...this, generalizing from
+	svalue to symbolic::value_node.
+	* region-model.cc: Drop include of "stor-layout.h".  Include
+	"diagnostics/markup.h".
+	(region_to_value_map::dump_to_pp): Drop.
+	(region_to_value_map::dump): Drop.
+	(region_to_value_map::make_dump_widget): Update for new signature.
+	(region_to_value_map::purge_state_involving): Generalize from
+	svalue to symbolic::node.
+	(exception_node::dump_to_pp): Drop.
+	(exception_node::dump): Drop overload and reimplement in terms
+	of dump widget.
+	(exception_node::dump_to_logger): New.
+	(exception_node::make_dump_widget): Update for signature change.
+	(exception_node::add_to_reachable_regions): Update for change
+	to reachable_regions.
+	(region_model::region_model): Pass node_mgr to store ctor.
+	(region_model::dump_to_pp): Reimplement in terms of dump_widget.
+	(region_model::dump): Likewise, simplifying.
+	(region_model::debug): Drop.
+	(region_model::dump_to_logger): New.
+	(region_model::make_dump_widget): Update for signature change.
+	(region_model::canonicalize): Drop store manager.
+	(region_model::loop_replay_fixup): Pass baseline state to store.
+	(region_model::get_gassign_result): Update infinite loop detection
+	before eval_condition does any folding.
+	(region_model::complain_about_poison): New.
+	(region_model::check_bytes_for_poison): New.
+	(region_model::on_assignment): Call region_model::set_value rather
+	than going to store for STRING_CST.
+	(exception_thrown_from_unrecognized_call::update_model): Port
+	to bit_contents.
+	(region_model::purge_state_involving): Pass a symbolic::node
+	rather than an svalue, dropping rejection of
+	can_have_associated_state_p.
+	(check_one_function_attr_null_terminated_string_arg): Port to new
+	types.
+	(region_model::handle_unrecognized_call): Likewise.
+	(region_model::get_reachable_svalues): Likewise.
+	(region_model::get_lvalue_1): Likewise.
+	(region_model::get_baseline_state): New.
+	(region_model::get_store_value): Move poison-checking.
+	Reimplement in terms of get_store_bits and
+	get_svalue_from_bit_vector.
+	(region_model::get_store_bits): New.
+	(region_model::get_bit_contents): New.
+	(region_model::set_bit_contents_raw): New.
+	(region_model::deref_rvalue): Assert that type is non-null.
+	Drop case for SK_REGION.
+	(region_model::get_rvalue_for_bits): Reimplement in terms of
+	get_store_bits, get_cropped_bits, and get_svalue_from_bit_vector.
+	(region_model::check_for_writable_region): Rename "dest_reg" to
+	"base_reg" and assume it is a base region.
+	(region_model::get_capacity_as_scalar): New.
+	(region_model::check_region_access): Reimplement as...
+	(region_model::check_memory_range_access): ...this.
+	(region_model::check_region_for_read): Delete.
+	(size_visitor::visit_conjured_svalue): Replace with...
+	(size_visitor::visit_svalue_from_bit_vector): ...this.
+	(region_model::write_to_memory_offset): New.
+	(region_model::set_value): Port to new types, reimplementing
+	in terms of write_to_memory_offset.
+	(struct fragment): Delete.
+	(string_cst_has_null_terminator): Delete.
+	(svalue_byte_range_has_null_terminator): Delete.
+	(svalue_byte_range_has_null_terminator_1): Delete.
+	(get_tree_for_byte_offset): Convert from byte_offset_t to
+	concrete_byte_offset.
+	(class iterable_cluster): Delete.
+	(region_model::get_store_bytes): Delete.
+	(region_model::scan_for_null_terminator_1): Reimplement in terms
+	of string_scan.
+	(region_model::scan_for_null_terminator): Use symbolic::bit_vector
+	for output of scanned bytes, rather than svalue.
+	(region_model::check_for_null_terminated_string_arg): Likewise.
+	(region_model::clobber_region): Drop store manager.  Pass baseline
+	state.
+	(region_model::purge_region): Reimplement.
+	(region_model::fill_region): Delete.
+	(region_model::zero_fill_region): Reimplement in terms of
+	write_to_memory_offset.
+	(region_model::write_bytes): Reimplement in terms of
+	symbolic::pointer, symbolic::bit_vector, and
+	write_to_memory_offset.
+	(region_model::read_bytes): Reimplement in terms of
+	symbolic::pointer, symbolic_byte_size, and symbolic::bit_vector.
+	(region_model::copy_bytes): Reimplement in terms of
+	symbolic::pointers and symbolic_byte_size.
+	(region_model::mark_region_as_unknown): Reimplement.
+	(region_model::mark_region_as_conjured): New.
+	(equal_bit_vectors_p): New.
+	(region_model::canonicalize_svalue_for_constraint): New.
+	(region_model::can_recurse_eval_condition_p): New.
+	(region_model::eval_condition): Canonicalize lhs and rhs.  Treat
+	equal bit vectors as equal (after float rejection for NaN).  Port
+	from region_svalue to symbolic::pointer.  Reject recursion purely
+	due to canonicalization, to avoid infinite recursion.
+	(region_model::compare_initial_and_pointer): Port from
+	region_svalue to symbolic::pointer.
+	(is_positive_svalue): Add positive * positive handler.
+	(region_model::add_constraint): Canonicalize lhs and rhs.  Port
+	from region_svalue to symbolic::pointer.
+	(convert_to_type): New.
+	(region_model::get_representative_path_var_1): Update from
+	svalue_set to value_set.  Convert various early returns into
+	appends to "pvs", so that we consider other canidates by
+	readability.  Port from region_svalue to symbolic::pointer and
+	handle other new types.
+	(region_model::get_representative_path_var): Use value_set rather
+	than svalue_set.  Only require types_compatible_p, rather than
+	exact type matches.
+	(region_model::get_representative_tree): Use value_set rather
+	than svalue_set.  Strip top-level casts repeatedly, rather than
+	just one.
+	(region_model::get_representative_tree): Update from svalue_set to
+	value_set.
+	(region_model::maybe_get_region_for_mem_range): New.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range): New.
+	(region_model::maybe_get_subregion_for_concrete_bit_range): New.
+	(get_underlying_index_type): New.
+	(struct quotient_and_residual): New.
+	(try_split_exact_multiple): New.
+	(quotient_and_residual::handle_bits_from_bytes): New.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range_in_array):
+	New.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range_in_record):
+	New.
+	(region_model::get_representative_path_var_1): Update from
+	svalue_set to value_set.
+	(region_model::get_representative_path_var): Likewise.
+	(region_model::replay_call_summary): Support failure from
+	store::replay_call_summary.
+	(region_model::on_top_level_param): Drop store manager; pass
+	baseline state.
+	(region_model::push_frame): Try to preserve the type of arg_sval
+	in the store, by wrapping it in an "unmergeable" decorator.
+	(region_model::poison_any_pointers_to_descendents): Delegate to
+	the cluster.
+	(region_model::can_merge_with_p): Drop store manager and update
+	for change to purge_state_involving.
+	(region_model::get_vtable_from_obj): Port to symbolic::pointer.
+	(region_model::get_fndecl_for_call): Port from region_svalue to
+	symbolic::pointer.
+	(contains_floating_point_visitor::visit_conjured_svalue): Delete.
+	(struct uninit_bit_counter): New.
+	(class exposure_through_uninit_copy): Reimplement using
+	uninit_bit_counter and new symbolic represenation.
+	(contains_uninit_p): Reimplement using poison_finder.
+	(region_model::maybe_complain_about_infoleak): Pass node_mgr to
+	exposure_through_uninit_copy ctor.
+	(model_merger::dump_to_pp): Drop.
+	(model_merger::dump): Drop.
+	(model_merger::dump): Drop.
+	(model_merger::mergeable_bit_vector_p): New.
+	(debug): Drop.
+	(selftest::assert_dump_eq): Drop.
+	(ASSERT_DUMP_EQ): Drop.
+	(selftesttest_dump): Reimplement using
+	symbolic::dump_node_tree_to_pp.
+	(selftest::make_test_compound_type): Move to analyzer-selftest.cc.
+	(struct selftest::coord_test): Likewise.
+	(selftest::test_struct): Add ASSERT_SYMBOLIC_NODE_MARKUP_TEXT_EQ
+	in various places.  Use ASSERT_SAME_SYMBOLIC_NODE rather than
+	ASSERT_EQ to get better error messages.  Verify memory ranges.
+	Port from region_offset to symbolic::memory_offset.  Drop
+	binding_cluster code.
+	(selftest::test_array_1): Verify markup output.
+	(selftest::test_get_representative_tree): Likewise.  Add test
+	of a single field within a struct.
+	(selftest::test_unique_constants): Verify markup output.
+	(selftest::test_unique_unknowns): Likewise.
+	(selftest::test_initial_svalue_folding): Replace ASSERT_EQ
+	with ASSERT_SAME_SYMBOLIC_NODE and verify markup output.
+	(selftest::test_unaryop_svalue_folding): Likewise.
+	(selftest::test_binop_svalue_folding): Likewise.
+	(selftest::test_sub_svalue_folding): Drop.
+	(selftest::get_bit): Drop.
+	(selftest::test_bits_within_svalue_folding): Drop.
+	(selftest::test_bit_range_regions): Port from bit_range
+	to concrete_bit_range.  Verify markup.
+	(selftest::test_stack_frames): Update "popped_stack" poison test.
+	Use ASSERT_SAME_SYMBOLIC_NODE.
+	(selftest::test_get_representative_path_var): Port from svalue_set
+	to value_set.
+	(selftest::assert_region_models_merge): Fix indentation.
+	(selftest::test_state_merging): Port from region_svalue to
+	pointer_svalue.  Use ASSERT_SAME_SYMBOLIC_NODE rather than
+	ASSERT_EQ.  Update test to use "p" rather than "x", since p is a
+	pointer.
+	(selftest::test_var): Update from region_offset to
+	symbolic::memory_range.  Use ASSERT_SAME_SYMBOLIC_NODE rather than
+	ASSERT_EQ
+	(selftest::test_array_2):  Likewise.
+	(selftest::test_alloca): Update "popped_stack" poison test.
+	(selftest::test_involves_p): Update for change in signature of
+	involves_p.
+	(selftest::test_array_in_struct): New test.
+	(selftest::test_maybe_get_region_for_mem_range): New test.
+	(selftest::analyzer_region_model_cc_tests): Drop calls to
+	test_sub_svalue_folding and test_bits_within_svalue_folding.
+	Add calls to test_array_in_struct and
+	test_maybe_get_region_for_mem_range.
+	* region-model.h (region_to_value_map::dump_to_pp): Drop.
+	(region_to_value_map::dump): Drop.
+	(region_to_value_map::dump_to_logger): New.
+	(region_to_value_map::make_dump_widget): Update signature.
+	(region_to_value_map::void purge_state_involving): Use
+	symbolic::node rather than svalue.
+	(visitor::visit_region_svalue): Replace with...
+	(visitor::visit_pointer_svalue): ...this.
+	(visitor::visit_sub_svalue): Delete.
+	(visitor::visit_repeated_svalue): Delete.
+	(visitor::visit_bits_within_svalue): Delete.
+	(visitor::visit_compound_svalue): Delete.
+	(visitor::visit_conjured_svalue): Delete.
+	(visitor::visit_svalue_from_bit_vector): New.
+	(exception_node::dump_to_pp): Drop.
+	(exception_node::dump): Drop overloads.
+	(exception_node::dump_to_logger): New.
+	(exception_node::make_dump_widget): Update signature.
+	(region_model::dump_to_pp): Simplify signature.
+	(region_model::dump): Drop overloads.
+	(region_model::dump_to_logger): New.
+	(region_model::debug): Drop.
+	(region_model::make_dump_widget): Update signature.
+	(region_model::purge_state_involving): Pass a symbolic::node
+	rather than an svalue.
+	(region_model::purge_state_involving): Use a value_set rather
+	than an svalue_set.
+	(region_model::fill_region): Drop.
+	(region_model::write_bytes): Port from svalue to symbolic::pointer
+	and symbolic::bit_vector.
+	(region_model::read_bytes): Likewise.
+	(region_model::copy_bytes): Port from region and svalue to
+	symbolic::pointer and symbolic_byte_size.
+	(region_model::mark_region_as_conjured): New.
+	(region_model::compare_initial_and_pointer): Port from
+	region_svalue to symbolic::pointer.
+	(region_model::get_representative_path_var): Use a value_set
+	rather than an svalue_set.
+	(region_model::maybe_get_region_for_mem_range): New.
+	(region_model::get_store_bytes): Replace with...
+	(region_model::get_store_bit): ...this.
+	(region_model::get_bit_contents): New.
+	(region_model::set_bit_contents_raw): New.
+	(region_model::scan_for_null_terminator): Use symbolic::bit_vector
+	rather than svalue.
+	(region_model::scan_for_null_terminator_1): Likewise.
+	(region_model::check_for_null_terminated_string_arg): Likewise.
+	(region_model::write_to_memory_offset): New.
+	(region_model::get_capacity_as_scalar): New.
+	(region_model::check_bytes_for_poison): New.
+	(region_model::get_baseline_state): New.
+	(region_model::bits_live_p): New.
+	(region_model::get_representative_path_var_1): Use a value_set
+	rather than an svalue_set.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range): New.
+	(region_model::maybe_get_subregion_for_concrete_bit_range): New.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range_in_array):
+	New.
+	(region_model::maybe_get_subregion_for_symbolic_bit_range_in_record):
+	New.
+	(region_model::complain_about_poison): New.
+	(region_model::check_memory_range_for_taint): New.
+	(region_model::check_memory_range_access): New.
+	(region_model::check_region_for_read): Drop.
+	(region_model::check_symbolic_bounds): Update from region
+	to symbolic::memory_range.
+	(region_model::check_memory_range_bounds): New.
+	(region_model::canonicalize_svalue_for_constraint): New.
+	(region_model::can_recurse_eval_condition_p): New.
+	(region_model_context::on_liveness_change): Update signature.
+	(region_model_context::on_unknown_change): Likewise.
+	(region_model_context::purge_state_involving): Likewise.
+	(class noop_region_model_context): Update for above changes.
+	(class region_model_context_decorator): Likewise.
+	(model_merger::dump_to_pp): Drop.
+	(model_merger::dump_to_logger): New.
+	(model_merger::dump): Simplify, dropping overloads.
+	(model_merger::mergeable_bit_vector_p): New.
+	(struct poison_finder): New.
+	* region.cc: Include "diagnostics/markup.h" and
+	"analyzer/symbolic-pointers.h".
+	(compare_bit_offsets_p): Delete.
+	(region_offset::make_byte_offset): Delete.
+	(region_offset::calc_symbolic_bit_offset): Delete.
+	(region_offset::calc_symbolic_byte_offset): Delete.
+	(region_offset::dump_to_pp): Delete.
+	(region_offset::dump): Delete.
+	(struct linear_op): Delete.
+	(strip_types): Delete.
+	(eval_byte_offset_comparison): Delete.
+	(eval_region_offset_comparison): Delete.
+	(region::print_dump_widget_label): New.
+	(region::~region): Drop manual deletion of m_cached_offset.
+	(region::add_dump_widget_children): New.
+	(region::get_memory_space): Handle RK_SYMBOLIC.
+	(region::calc_initial_value_at_main): Port to new implementation.
+	(region::get_offset): Replace with...
+	(region::get_memory_offset): ...this.
+	(region::get_next_offset): Delete.
+	(region::get_memory_range): New.
+	(region::get_pointer): New.
+	(region::get_byte_size): Replace with...
+	(region::maybe_get_byte_size): ...this.
+	(region::get_byte_size_sval): Reimplement.
+	(region::get_bit_size_sval): New.
+	(get_type_size): New.
+	(get_bit_position): New.
+	(region::get_bit_size): Replace with...
+	(region::maybe_get_bit_size): ...this.
+	(get_field_at_bit_offset): Port to new types.
+	(region::get_subregions_for_binding): Convert to...
+	(region::get_subregions_for_bit_range): ...this.
+	(region::calc_offset): Replace with...
+	(region::calc_memory_offset): ...this.
+	(region::get_relative_concrete_offset): Delete.
+	(region::get_relative_symbolic_offset): Delete.
+	(region::get_relative_concrete_byte_range): Delete.
+	(region::calc_memory_range): New.
+	(region::calc_pointer): New.
+	(region::dump): Delete.
+	(region::maybe_get_bit_offset_relative_to_parent): New.
+	(region::maybe_get_byte_offset_relative_to_parent): New.
+	(region::to_json): Delete in favor of node::to_json.
+	(region::dump): Reimplement using dump widget.
+	(region::make_dump_widget): Delete in favor of
+	node::make_dump_widget.
+	(region::add_dump_widget_children): Update signature.
+	(region::make_json_obj): New.
+	(region::empty_p): Add "rmm" param and port to new implementation.
+	(region::region): Update for replacement of m_cached_offset with
+	m_cached_memory_range.
+	(region::involves_p): Delete in favor of node::involves_p.
+	(frame_region::print_dump_widget_label): Rename to...
+	(frame_region::print_region_for_dump_widget_label): ...this.
+	(frame_region::accept_node_visitor): New.
+	(frame_region::to_json): New.
+	(frame_region::make_markup_node): New.
+	(globals_region::print_dump_widget_label): Rename to...
+	(globals_region::print_region_for_dump_widget_label): ...this.
+	(globals_region::accept_node_visitor) New.
+	(globals_region::to_json): New.
+	(globals_region::make_markup_node): New.
+	(code_region::print_dump_widget_label): Rename to...
+	(code_region::print_region_for_dump_widget_label): ...this.
+	(code_region::accept_node_visitor) New.
+	(code_region::to_json): New.
+	(code_region::make_markup_node): New.
+	(function_region::print_dump_widget_label): Rename to...
+	(function_region::print_region_for_dump_widget_label): ...this.
+	(function_region::accept_node_visitor) New.
+	(function_region::to_json): New.
+	(function_region::make_markup_node): New.
+	(label_region::print_dump_widget_label): Rename to...
+	(label_region::print_region_for_dump_widget_label): ...this.
+	(label_region::accept_node_visitor) New.
+	(label_region::to_json): New.
+	(label_region::make_markup_node): New.
+	(stack_region::print_dump_widget_label): Rename to...
+	(stack_region::print_region_for_dump_widget_label): ...this.
+	(stack_region::accept_node_visitor) New.
+	(stack_region::to_json): New.
+	(stack_region::make_markup_node): New.
+	(heap_region::print_dump_widget_label): Rename to...
+	(heap_region::print_region_for_dump_widget_label): ...this.
+	(heap_region::accept_node_visitor) New.
+	(heap_region::to_json): New.
+	(heap_region::make_markup_node): New.
+	(root_region::print_dump_widget_label): Rename to...
+	(root_region::print_region_for_dump_widget_label): ...this.
+	(root_region::accept_node_visitor) New.
+	(root_region::to_json): New.
+	(root_region::make_markup_node): New.
+	(thread_local_region::print_dump_widget_label): Rename to...
+	(thread_local_region::print_region_for_dump_widget_label):
+	...this.
+	(thread_local_region::accept_node_visitor) New.
+	(thread_local_region::to_json): New.
+	(thread_local_region::make_markup_node): New.
+	(symbolic_region::print_dump_widget_label): Rename to...
+	(symbolic_region::print_region_for_dump_widget_label): ...this.
+	(symbolic_region::add_dump_widget_children): Update signature.
+	Dump m_sval_ptr.
+	(symbolic_region::accept_node_visitor) New.
+	(symbolic_region::to_json): New.
+	(symbolic_region::make_markup_node): New.
+	(decl_region::print_dump_widget_label): Rename to...
+	(decl_region::print_region_for_dump_widget_label): ...this.
+	(decl_region::accept_node_visitor) New.
+	(decl_region::to_json): New.
+	(decl_region::make_markup_node): New.
+	(decl_region::calc_svalue_for_constructor): Delete.
+	(decl_region::get_svalue_for_constructor): Reimplement.
+	(decl_region::get_bit_contents_for_constructor): New.
+	(decl_region::get_svalue_for_initializer): Reimplement.
+	(decl_region::maybe_get_bit_contents_for_initializer): New.
+	(field_region::print_dump_widget_label): Rename to...
+	(field_region::print_region_for_dump_widget_label): ...this.
+	(field_region::accept_node_visitor) New.
+	(field_region::to_json): New.
+	(field_region::make_markup_node): New.
+	(field_region::get_relative_concrete_offset): Drop.
+	(field_region::maybe_get_bit_offset_relative_to_parent): New.
+	(field_region::maybe_get_byte_offset_relative_to_parent): New.
+	(field_region::get_relative_symbolic_offset): Drop.
+	(element_region::print_dump_widget_label): Rename to...
+	(element_region::print_region_for_dump_widget_label): ...this.
+	(element_region::add_dump_widget_children): Update signature.
+	Dump m_index.
+	(element_region::accept_node_visitor) New.
+	(element_region::to_json): New.
+	(element_region::make_markup_node): New.
+	(element_region::maybe_get_bit_offset_relative_to_parent): New.
+	(element_region::maybe_get_byte_offset_relative_to_parent): New.
+	(element_region::get_relative_concrete_offset): Delete.
+	(element_region::get_relative_symbolic_offset): Delete.
+	(offset_region::print_dump_widget_label): Rename to...
+	(offset_region::print_region_for_dump_widget_label): ...this.
+	(offset_region::add_dump_widget_children): Update signature.
+	Dump m_byte_offset.
+	(offset_region::accept_node_visitor) New.
+	(offset_region::to_json): New.
+	(offset_region::make_markup_node): New.
+	(offset_region::get_relative_concrete_offset): Delete.
+	(offset_region::maybe_get_bit_offset_relative_to_parent): New.
+	(offset_region::get_relative_symbolic_offset): Delete.
+	(offset_region::maybe_get_byte_offset_relative_to_parent): New.
+	(sized_region::print_dump_widget_label): Rename to...
+	(sized_region::print_region_for_dump_widget_label): ...this.
+	(sized_region::add_dump_widget_children): Update signature.
+	(sized_region::accept_node_visitor) New.
+	(sized_region::to_json): New.
+	(sized_region::make_markup_node): New.
+	(sized_region::get_byte_size): Replace with...
+	(sized_region::maybe_get_byte_size): ...this.
+	(sized_region::get_bit_size): Replace with...
+	(sized_region::maybe_get_bit_size): ...this.
+	(sized_region::get_bit_size_sval): Drop.
+	(cast_region::print_dump_widget_label): Rename to...
+	(cast_region::print_region_for_dump_widget_label): ...this.
+	(cast_region::accept_node_visitor) New.
+	(cast_region::to_json): New.
+	(cast_region::make_markup_node): New.
+	(cast_region::get_relative_concrete_offset): Drop.
+	(cast_region::maybe_get_bit_offset_relative_to_parent): New.
+	(cast_region::maybe_get_byte_offset_relative_to_parent): New.
+	(heap_allocated_region::print_dump_widget_label): Rename to...
+	(heap_allocated_region::print_region_for_dump_widget_label): ...this.
+	(heap_allocated_region::accept_node_visitor) New.
+	(heap_allocated_region::to_json): New.
+	(heap_allocated_region::make_markup_node): New.
+	(alloca_region::print_dump_widget_label): Rename to...
+	(alloca_region::print_region_for_dump_widget_label): ...this.
+	(alloca_region::accept_node_visitor) New.
+	(alloca_region::to_json): New.
+	(alloca_region::make_markup_node): New.
+	(string_region::print_dump_widget_label): Rename to...
+	(string_region::print_region_for_dump_widget_label): ...this.
+	(string_region::accept_node_visitor) New.
+	(string_region::to_json): New.
+	(string_region::make_markup_node): New.
+	(bit_range_region::print_dump_widget_label): Rename to...
+	(bit_range_region::print_region_for_dump_widget_label): ..this.
+	(bit_range_region::accept_node_visitor): New.
+	(bit_range_region::to_json): New.
+	(bit_range_region::make_markup_node): New.
+	(bit_range_region::get_byte_size): Delete.
+	(bit_range_region::maybe_get_byte_size): New.
+	(bit_range_region::get_bit_size): Delete.
+	(bit_range_region::get_byte_size_sval): Delete.
+	(bit_range_region::get_bit_size_sval): Delete.
+	(bit_range_region::maybe_get_bit_size): New.
+	(bit_range_region::get_relative_concrete_offset): Delete.
+	(bit_range_region::maybe_get_bit_offset_relative_to_parent): New.
+	(bit_range_region::get_relative_symbolic_offset): Delete.
+	(bit_range_region::maybe_get_byte_offset_relative_to_parent): New.
+	(var_arg_region::print_dump_widget_label): Rename to...
+	(var_arg_region::print_region_for_dump_widget_label): ...this.
+	(var_arg_region::accept_node_visitor): New.
+	(var_arg_region::to_json): New.
+	(var_arg_region::make_markup_node): New.
+	(errno_region::print_dump_widget_label): Rename to...
+	(errno_region::print_region_for_dump_widget_label): ...this.
+	(errno_region::accept_node_visitor): New.
+	(errno_region::to_json): New.
+	(errno_region::make_markup_node): New.
+	(private_region::print_dump_widget_label): Rename to...
+	(private_region::print_region_for_dump_widget_label): ...this.
+	(private_region::accept_node_visitor): New.
+	(private_region::to_json): New.
+	(private_region::make_markup_node): New.
+	(unknown_region::print_dump_widget_label): Rename to...
+	(unknown_region::print_region_for_dump_widget_label): ...this.
+	(unknown_region::accept_node_visitor): New.
+	(unknown_region::to_json): New.
+	(unknown_region::make_markup_node): New.
+	* region.h: Drop include of "text-art/tree-widget.h".  Add
+	includes of "analyzer/concrete-ranges.h",
+	"analyzer/symbolic-memory-offsets.h",
+	"analyzer/symbolic-memory-ranges.h", and
+	"analyzer/symbolic-pointers.h".
+	(region::symbolic_bit_count): New using decl.
+	(region::symbolic_byte_count): New using decl.
+	(region::print_dump_widget_label): New.
+	(region::print_region_for_dump_widget_label): New.
+	(region::add_dump_widget_children): New.
+	(region::get_any_dump_color): New.
+	(region::to_json): Delete in favor of node::to_json.
+	(region::make_dump_widget): Delete in favor of
+	node::make_dump_widget.
+	(region::involves_p): Delete in favor of node::involves_p.
+	(region::get_memory_offset): New.
+	(region::get_memory_range): New.
+	(region::get_offset): Delete.
+	(region::get_next_offset): Delete.
+	(region::get_byte_size): Delete.
+	(region::get_pointer): New.
+	(region::get_bit_size): Replace with...
+	(region::maybe_get_bit_size): ...this.
+	(region::maybe_get_byte_size): New.
+	(region::get_bit_size_sval): Delete.
+	(region::get_byte_size_sval): New.
+	(region::get_relative_concrete_offset): Replace with...
+	(region::maybe_get_bit_offset_relative_to_parent): ...this.
+	(region::get_relative_symbolic_offset): Delete.
+	(region::get_relative_concrete_byte_range): Delete.
+	(region::maybe_get_byte_offset_relative_to_parent): New.
+	(region::get_subregions_for_binding): Replace with...
+	(region::get_subregions_for_bit_range): ...this.
+	(region::empty_p): Add region_model_manager param.
+	(region::make_json_obj): New.
+	(region::calc_offset): Drop.
+	(region::calc_memory_offset): New.
+	(region::calc_memory_range): New.
+	(region::calc_pointer): New.
+	(region::print_dump_widget_label): Drop.
+	(region::add_dump_widget_children): Drop.
+	(region::add_dump_widget_children_for_region): Drop.
+	(region::m_cached_offset): Replace with...
+	(region::m_cached_memory_offset): ...this,
+	(region::m_cached_memory_range): ...this,
+	(region::m_cached_pointer): ...and this.
+	(frame_region::print_dump_widget_label): Rename to...
+	(frame_region::print_region_for_dump_widget_label): ...this.
+	(frame_region::accept_node_visitor): New.
+	(frame_region::to_json): New.
+	(frame_region::make_markup_node): New.
+	(globals_region::print_dump_widget_label): Rename to...
+	(globals_region::print_region_for_dump_widget_label): ...this.
+	(globals_region::accept_node_visitor): New.
+	(globals_region::to_json): New.
+	(globals_region::make_markup_node): New.
+	(code_region::print_dump_widget_label): Rename to...
+	(code_region::print_region_for_dump_widget_label): ...this.
+	(code_region::accept_node_visitor): New.
+	(code_region::to_json): New.
+	(code_region::make_markup_node): New.
+	(function_region::print_dump_widget_label): Rename to...
+	(function_region::print_region_for_dump_widget_label): ...this.
+	(function_region::accept_node_visitor): New.
+	(function_region::to_json): New.
+	(function_region::make_markup_node): New.
+	(label_region::print_dump_widget_label): Rename to...
+	(label_region::print_region_for_dump_widget_label): ...this.
+	(label_region::accept_node_visitor): New.
+	(label_region::to_json): New.
+	(label_region::make_markup_node): New.
+	(stack_region::print_dump_widget_label): Rename to...
+	(stack_region::print_region_for_dump_widget_label): ...this.
+	(stack_region::accept_node_visitor): New.
+	(stack_region::to_json): New.
+	(stack_region::make_markup_node): New.
+	(heap_region::print_dump_widget_label): Rename to...
+	(heap_region::print_region_for_dump_widget_label): ...this.
+	(heap_region::accept_node_visitor): New.
+	(heap_region::to_json): New.
+	(heap_region::make_markup_node): New.
+	(thread_local_region::print_dump_widget_label): Rename to...
+	(thread_local_region::print_region_for_dump_widget_label): ...this.
+	(thread_local_region::accept_node_visitor): New.
+	(thread_local_region::to_json): New.
+	(thread_local_region::make_markup_node): New.
+	(root_region::print_dump_widget_label): Rename to...
+	(root_region::print_region_for_dump_widget_label): ...this.
+	(root_region::accept_node_visitor): New.
+	(root_region::to_json): New.
+	(root_region::make_markup_node): New.
+	(symbolic_region::print_dump_widget_label): Rename to...
+	(symbolic_region::print_region_for_dump_widget_label): ...this.
+	(symbolic_region::accept_node_visitor): New.
+	(symbolic_region::to_json): New.
+	(symbolic_region::make_markup_node): New.
+	(symbolic_region::add_dump_widget_children): Update signature.
+	(decl_region::decl_region): Replace m_ctor with
+	m_ctor_bit_contents.
+	(decl_region::print_dump_widget_label): Rename to...
+	(decl_region::print_region_for_dump_widget_label): ...this.
+	(decl_region::accept_node_visitor): New.
+	(decl_region::to_json): New.
+	(decl_region::make_markup_node): New.
+	(decl_region::maybe_get_bit_contents_for_initializer): New.
+	(decl_region::get_bit_contents_for_constructor): New.
+	(decl_region::maybe_get_bit_vector_for_initializer): New.
+	(decl_region::calc_svalue_for_constructor): Drop.
+	(decl_region::m_ctor_svalue): Replace with...
+	(decl_region::m_ctor_bit_contents): ...this.
+	(field_region::print_dump_widget_label): Rename to...
+	(field_region::print_region_for_dump_widget_label): ...this.
+	(field_region::accept_node_visitor): New.
+	(field_region::to_json): New.
+	(field_region::make_markup_node): New.
+	(field_region::get_relative_concrete_offset): Drop.
+	(field_region::get_relative_symbolic_offset): Drop.
+	(field_region::maybe_get_bit_offset_relative_to_parent): New.
+	(field_region::maybe_get_byte_offset_relative_to_parent): New.
+	(element_region::print_dump_widget_label): Rename to...
+	(element_region::print_region_for_dump_widget_label): ...this.
+	(element_region::accept_node_visitor): New.
+	(element_region::to_json): New.
+	(element_region::make_markup_node): New.
+	(element_region::get_relative_concrete_offset): Drop.
+	(element_region::get_relative_symbolic_offset): Drop.
+	(element_region::maybe_get_bit_offset_relative_to_parent): New.
+	(element_region::maybe_get_byte_offset_relative_to_parent): New.
+	(offset_region::print_dump_widget_label): Rename to...
+	(offset_region::print_region_for_dump_widget_label): ...this.
+	(offset_region::add_dump_widget_children): Update signature.
+	(offset_region::accept_node_visitor): New.
+	(offset_region::to_json): New.
+	(offset_region::make_markup_node): New.
+	(offset_region::get_relative_concrete_offset): Drop.
+	(offset_region::get_relative_symbolic_offset): Drop.
+	(offset_region::maybe_get_bit_offset_relative_to_parent): New.
+	(offset_region::maybe_get_byte_offset_relative_to_parent): New.
+	(sized_region::print_dump_widget_label): Rename to...
+	(sized_region::print_region_for_dump_widget_label): ...this.
+	(sized_region::add_dump_widget_children): Update signature.
+	(sized_region::accept_node_visitor): New.
+	(sized_region::to_json): New.
+	(sized_region::make_markup_node): New.
+	(sized_region::get_byte_size): Drop.
+	(sized_region::get_bit_size): Drop.
+	(sized_region::get_byte_size_sval): Drop.
+	(sized_region::get_bit_size_sval): Drop.
+	(sized_region::maybe_get_byte_size): New.
+	(sized_region::maybe_get_bit_size): New.
+	(cast_region::print_dump_widget_label): Rename to...
+	(cast_region::print_region_for_dump_widget_label): ...this.
+	(cast_region::accept_node_visitor): New.
+	(cast_region::to_json): New.
+	(cast_region::make_markup_node): New.
+	(cast_region::maybe_get_bit_offset_relative_to_parent): New.
+	(cast_region::get_relative_concrete_offset): Drop.
+	(cast_region::maybe_get_byte_offset_relative_to_parent): New.
+	(heap_allocated_region::print_dump_widget_label): Rename to...
+	(heap_allocated_region::print_region_for_dump_widget_label):
+	...this.
+	(heap_allocated_region::accept_node_visitor): New.
+	(heap_allocated_region::to_json): New.
+	(heap_allocated_region::make_markup_node): New.
+	(alloca_region::print_dump_widget_label): Rename to...
+	(alloca_region::print_region_for_dump_widget_label): ...this.
+	(alloca_region::accept_node_visitor): New.
+	(alloca_region::to_json): New.
+	(alloca_region::make_markup_node): New.
+	(string_region::print_dump_widget_label): Rename to...
+	(string_region::print_region_for_dump_widget_label): ...this.
+	(string_region::accept_node_visitor): New.
+	(string_region::to_json): New.
+	(string_region::make_markup_node): New.
+	(bit_range_region::key_t::key_t): Convert from bit_range to
+	concrete_bit_range.
+	(bit_range_region::key_t::hash): Likewise.
+	(bit_range_region::key_t::m_bits): Convert from bit_range to
+	concrete_bit_range.
+	(bit_range_region::bit_range_region): Likewise.
+	(bit_range_region::print_dump_widget_label): Rename to...
+	(bit_range_region::print_region_for_dump_widget_label): ...this.
+	(bit_range_region::accept_node_visitor): New.
+	(bit_range_region::to_json): New.
+	(bit_range_region::make_markup_node): New.
+	(bit_range_region::get_bits): New.
+	(bit_range_region::maybe_get_byte_size): New.
+	(bit_range_region::maybe_get_bit_size): New.
+	(bit_range_region::maybe_get_bit_offset_relative_to_parent): New.
+	(bit_range_region::maybe_get_byte_offset_relative_to_parent): New.
+	(bit_range_region::get_byte_size): Delete.
+	(bit_range_region::get_bit_size): Delete.
+	(bit_range_region::get_byte_size_sval): Delete.
+	(bit_range_region::get_bit_size_sval): Delete.
+	(bit_range_region::get_relative_concrete_offset): Delete.
+	(bit_range_region::get_relative_symbolic_offset): Delete.
+	(bit_range_region::m_bits): Convert from bit_range to
+	concrete_bit_range.
+	(var_arg_region::print_dump_widget_label): Rename to...
+	(var_arg_region::print_region_for_dump_widget_label): ...this.
+	(var_arg_region::accept_node_visitor): New.
+	(var_arg_region::to_json): New.
+	(var_arg_region::make_markup_node): New.
+	(errno_region::print_dump_widget_label): Rename to...
+	(errno_region::print_region_for_dump_widget_label): ...this.
+	(errno_region::accept_node_visitor): New.
+	(errno_region::to_json): New.
+	(errno_region::make_markup_node): New.
+	(private_region::print_dump_widget_label): Rename to...
+	(private_region::print_region_for_dump_widget_label): ...this.
+	(private_region::accept_node_visitor): New.
+	(private_region::to_json): New.
+	(private_region::make_markup_node): New.
+	(unknown_region::print_dump_widget_label): Rename to...
+	(unknown_region::print_region_for_dump_widget_label): ...this.
+	(unknown_region::accept_node_visitor): New.
+	(unknown_region::to_json): New.
+	(unknown_region::make_markup_node): New.
+	* setjmp-longjmp.cc: Include "diagnostics/markup.h".
+	(setjmp_svalue::print_dump_widget_label): Rename to...
+	(setjmp_svalue::print_svalue_for_dump_widget_label): ...this.
+	(setjmp_svalue::add_dump_widget_children): Update for param
+	change.
+	(setjmp_svalue::accept_node_visitor): New.
+	(setjmp_svalue::to_json): New.
+	(setjmp_svalue::make_markup_node): New.
+	* sm-fd.cc: Port from region_svalue to symbolic::pointer. Use
+	mark_region_as_unknown rather than trying to create a conjured
+	value.
+	* sm-file.cc: Port from region_svalue to symbolic::pointer. Use
+	mark_region_as_conjured rather than trying to create a conjured
+	value.
+	* sm-malloc.cc (malloc_state_machine::get_default_state): Handle
+	all zeros.  Port from region_svalue to symbolic::pointer.
+	(add_state_to_state_graph): Port from region_svalue to
+	symbolic::pointer.
+	* sm-taint.cc (taint_diagnostic::describe_state_change):
+	Bulletproof against null change.m_expr.
+	(region_model::check_memory_range_for_taint): New.
+	(region_model::check_region_for_taint): Drop casts in RK_OFFSET
+	case.
+	* state-purge.cc (same_binding_p): Replace store_manager param
+	with region_model_manager.  Reimplement from binding_key to
+	symbolic::memory_range.
+	(fully_overwrites_p): Update for above change.
+	* store.cc (dump_svalue_set): Delete.
+	(uncertainty_t::on_maybe_bound_value): New.
+	(uncertainty_t::dump_to_pp): Delete.
+	(uncertainty_t::on_mutable_value_at_unknown_call): New.
+	(uncertainty_t::unknown_sm_state_p): New.
+	(uncertainty_t::add_bit_contents): New.
+	(uncertainty_t::dump): Reimplement using dump widget.
+	(uncertainty_t::dump_to_logger): New.
+	(binding_key::make): Delete.
+	(binding_key::dump): Delete.
+	(binding_key::get_desc): Delete.
+	(binding_key::cmp_ptrs): Delete.
+	(binding_key::cmp): Delete.
+	(bit_range::from_mask): Delete.
+	(concrete_binding::dump_to_pp): Delete.
+	(concrete_binding::overlaps_p): Delete.
+	(concrete_binding::get_byte_range): Delete.
+	(concrete_binding::cmp_ptr_ptr): Delete.
+	(symbolic_binding::dump_to_pp): Delete.
+	(symbolic_binding::cmp_ptr_ptr): Delete.
+	(concrete_binding_map::dump_to_pp): Delete.
+	(concrete_binding_map::dump): Delete.
+	(concrete_binding_map::add_to_tree_widget): Delete.
+	(concrete_binding_map::validate): Delete.
+	(concrete_binding_map::cmp): Delete.
+	(concrete_binding_map::get_any_exact_binding): Delete.
+	(concrete_binding_map::calc_complexity): Delete.
+	(concrete_binding_map::remove_overlapping_binding): Delete.
+	(concrete_binding_map::remove_overlapping_bindings): Delete.
+	(concrete_binding_map::get_overlapping_bindings): Delete.
+	(binding_map::const_iterator::operator==): Delete.
+	(binding_map::const_iterator::operator++): Delete.
+	(binding_map::const_iterator::operator*): Delete.
+	(binding_map::const_iterator::get_svalue): Delete.
+	(binding_map::iterator::operator==): Delete.
+	(binding_map::iterator::operator++): Delete.
+	(binding_map::iterator::operator*): Delete.
+	(binding_map::binding_map): Delete.
+	(binding_map::binding_map): Delete.
+	(binding_map::operator=): Delete.
+	(binding_map::operator==): Delete.
+	(binding_map::hash): Delete.
+	(binding_map::get): Delete.
+	(binding_map::put): Delete.
+	(binding_map::overwrite): Delete.
+	(binding_map::remove): Delete.
+	(binding_map::begin): Delete.
+	(binding_map::end): Delete.
+	(binding_map::begin): Delete.
+	(binding_map::end): Delete.
+	(binding_map::elements): Delete.
+	(binding_map::dump_to_pp): Delete.
+	(binding_map::dump): Delete.
+	(binding_map::validate): Delete.
+	(binding_map::to_json): Delete.
+	(add_binding_to_tree_widget): Delete.
+	(binding_map::add_to_tree_widget): Delete.
+	(get_subregion_within_ctor): Move to initializers.cc.
+	(get_subregion_within_ctor_for_ctor_pair): Likewise.
+	(get_svalue_for_ctor_val): Delete, reusing in implementation of
+	initializers.cc.
+	(concrete_binding_map::apply_ctor_to_region): Likewise.
+	(concrete_binding_map::apply_ctor_val_to_range): Likewise.
+	(concrete_binding_map::apply_ctor_pair_to_child_region): Likewise.
+	(binding_map::get_overlapping_bindings): Delete.
+	(binding_map::remove_overlapping_bindings): Delete.
+	(binding_cluster::binding_cluster): Reimplement, adding
+	assertions.
+	(binding_cluster::to_json): New.
+	(binding_cluster::make_dump_widget): New.
+	(binding_cluster::get_bits): New.
+	(binding_cluster::set_bits): New.
+	(binding_cluster::mark_as_untracked): New.
+	(binding_cluster::operator=): Reimplement.
+	(binding_cluster::operator==): Reimplement.
+	(binding_cluster::hash): Reimplement.
+	(binding_cluster::dump_to_pp): Delete.
+	(binding_cluster::dump): Reimplement.
+	(binding_cluster::validate): Convert to nop-op
+	(binding_cluster::bind): Delete.
+	(binding_cluster::bind_key): Delete.
+	(binding_cluster::bind_compound_sval): Delete.
+	(binding_cluster::clobber_region): Delete.
+	(binding_cluster::purge_region): Delete.
+	(binding_cluster::fill_region): Delete.
+	(binding_cluster::zero_fill_region): Delete.
+	(binding_cluster::mark_region_as_unknown): Delete.
+	(binding_cluster::purge_state_involving): Delete.
+	(binding_cluster::get_binding): Delete.
+	(binding_cluster::get_binding_recursive): Delete.
+	(binding_cluster::get_any_binding): Delete.
+	(binding_cluster::maybe_get_compound_binding): Delete.
+	(binding_cluster::mark_as_untracked): New.
+	(binding_cluster::remove_overlapping_bindings): Delete.
+	(binding_cluster::purge_state_involving): New.
+	(binding_cluster::can_merge_p): Reimplement.
+	(class possibly_overwritten_values_visitor): New.
+	(binding_cluster::make_unknown_relative_to): Reimplement.
+	(binding_cluster::for_each_value): New.
+	(binding_cluster::on_unknown_fncall): Drop store_manager.
+	Delegate to...
+	(binding_cluster::mark_region_as_conjured): ...this new function.
+	(binding_cluster::on_unknown_fncall): Likewise.
+	(binding_cluster::on_asm): Reimplement.
+	(binding_cluster::escaped_p): Treat symbolic regions arising from
+	dereferencing a conjured pointer as having escaped.
+	(binding_cluster::redundant_p): Add store and baseline_state
+	params, and use them to compare against the implicit contents.
+	(append_pathvar_with_type): Make non-static.  Handle type being
+	null.
+	(binding_cluster::get_representative_path_vars): Reimplement,
+	delegating to m_contents.
+	(binding_cluster::get_any_value): Delete.
+	(binding_cluster::maybe_get_simple_value): Delete.
+	(binding_cluster::poison_any_pointers_to_descendents): New.
+	(binding_cluster::bits_live_p): New.
+	(store_manager::get_logger): Delete.
+	(store_manager::get_concrete_binding): Delete.
+	(store_manager::get_symbolic_binding): Delete.
+	(store::store): Initialize m_node_mgr.
+	(store::dump_to_pp): Delete.
+	(store::dump): Reimplement using dump widget.
+	(get_string_for_baseline_state): New.
+	(store::make_dump_widget): Update for new signature.
+	(store::get_bits): New.
+	(store::get_any_binding): Delete.
+	(store::get_bit_contents): New.
+	(store::set_bits): New.
+	(store::set_value): Delete.
+	(store::set_bit_contents_raw): New.
+	(store::eval_alias_1): Use derived_from_initial_value_p rather
+	than comparing against SK_INITIAL.
+	(store::get_baseline_contents): New.
+	(store::get_implicit_contents): New.
+	(store::on_maybe_live_values): Drop store_manager.  Add
+	baseline_state.
+	(store::bits_live_p): New.
+	(store::fill_region): Delete.
+	(store::zero_fill_region): Delete.
+	(store::clobber_region): Reimplement.
+	(store::purge_region): Reimplement.
+	(store::mark_region_as_unknown): Reimplement.
+	(store::purge_state_involving): Generalize from svalue
+	to symbolic::node.
+	(store::get_or_create_cluster): Drop store_manager param.
+	Add baseline_state param and use it to get the implicit contents
+	of the cluster and pass it to the binding_cluster ctor.
+	(store::can_merge_p): Drop store_manager param.  Update for
+	changes to get_or_create_cluster and binding_cluster::can_merge_p.
+	(store::mark_as_escaped): Drop store_manager param.  Add
+	baseline_state param and pass it to get_or_create_cluster.
+	(store::on_unknown_fncall): Drop store_manager param.
+	(store::mark_region_as_conjured): New.
+	(store::get_representative_path_vars): Use value_set rather
+	than svalue_set.
+	(store::remove_overlapping_bindings): Delete.
+	(struct region_finder): Delete.
+	(store::canonicalize): Convert to no-op.
+	(needs_loop_replay_fixup_p): Generalize from svalue to
+	symbolic::node.
+	(store::loop_replay_fixup): Add baseline_state.  Port to new
+	implementation.
+	(store::replay_call_summary): Drop store_manager.  Convert return
+	type to bool and support failure.
+	(store::replay_call_summary_cluster): Likewise.  Port to new
+	implementation.
+	(store::replay_call_summary_bit_contents): New.
+	(selftest::assert_bit_range_from_mask_eq): Delete.
+	(ASSERT_BIT_RANGE_FROM_MASK_EQ): Delete.
+	(selftest::assert_no_bit_range_from_mask_eq): Delete.
+	(ASSERT_NO_BIT_RANGE_FROM_MASK): Delete.
+	(selftest::test_bit_range_from_mask): Delete.
+	(selftest::assert_overlap): Delete.
+	(selftest::assert_disjoint): Delete.
+	(ASSERT_OVERLAP): Delete.
+	(ASSERT_DISJOINT): Delete.
+	(selftest::test_binding_key_overlap): Delete.
+	(selftest::test_binding_map_ops): Delete.
+	(selftest::analyzer_store_cc_tests): Drop calls to deleted tests.
+	* store.h: Add includes of "analyzer/concrete-ranges.h",
+	"analyzer/symbolic-ranges.h", "analyzer/symbolic-bit-contents.h",
+	and "analyzer/symbolic-memory-ranges.h".  Rewrite the introductory
+	comment.
+	(class uncertainty_t): Convert from svalue to symbolic::value_node
+	throughout.
+	(class binding_key): Delete.
+	(bit_range::from_mask): Delete.
+	(convert_from_bit_range): New.
+	(convert_to_bit_range): New.
+	(class concrete_binding): Delete.
+	(is_a_helper <const ana::concrete_binding *>::test): Delete.
+	(struct default_hash_traits<ana::concrete_binding>): Delete.
+	(class symbolic_binding): Delete.
+	(struct default_hash_traits<ana::symbolic_binding>): Delete.
+	(class concrete_binding_map): Delete.
+	(class binding_map): Delete.
+	(class binding_cluster): Flesh out leading comment.
+	(binding_cluster::const_iterator_t): Delete.
+	(binding_cluster::iterator_t): Delete.
+	(binding_cluster::binding_cluster): Drop store_manager, add
+	node_manager and bit_contents.
+	(binding_cluster::dump_to_pp): Delete.
+	(binding_cluster::dump): Drop param.
+	(binding_cluster::make_dump_widget): Update signature.
+	(binding_cluster::bind): Delete.
+	(binding_cluster::clobber_region): Delete.
+	(binding_cluster::purge_region): Delete.
+	(binding_cluster::fill_region): Delete.
+	(binding_cluster::zero_fill_region): Delete.
+	(binding_cluster::mark_region_as_unknown): Delete.
+	(binding_cluster::purge_state_involving): Update signature.
+	(binding_cluster::get_binding): Delete.
+	(binding_cluster::get_binding_recursive): Delete.
+	(binding_cluster::get_any_binding): Delete.
+	(binding_cluster::maybe_get_compound_binding): Delete.
+	(binding_cluster::remove_overlapping_bindings): Delete.
+	(binding_cluster::for_each_value): Update signature.
+	(binding_cluster::get_bits): New.
+	(binding_cluster::set_bits): New.
+	(binding_cluster::get_bit_contents): New.
+	(binding_cluster::set_bit_contents): New.
+	(binding_cluster::mark_as_untracked): New.
+	(binding_cluster::can_merge_p): Drop store_manager.
+	(binding_cluster::make_unknown_relative_to): Likewise. Add
+	baseline_state.
+	(binding_cluster::on_unknown_fncall): Drop store_manager.
+	(binding_cluster::mark_region_as_conjured): New.
+	(binding_cluster::on_asm): Drop store_manager.
+	(binding_cluster::redundant_p): Add store and baseline_state
+	params.
+	(binding_cluster::empty_p): Delete.
+	(binding_cluster::get_representative_path_vars): Update from
+	svalue_set to value_set.
+	(binding_cluster::maybe_get_simple_value): Delete.
+	(binding_cluster::begin): Delete.
+	(binding_cluster::end): Delete.
+	(binding_cluster::poison_any_pointers_to_descendents): New.
+	(binding_cluster::get_map): Delete.
+	(binding_cluster::bits_live_p): New.
+	(binding_cluster::get_any_value): Delete.
+	(binding_cluster::bind_compound_sval): Delete.
+	(binding_cluster::bind_key): Delete.
+	(binding_cluster::m_node_mgr): New field.
+	(binding_cluster::m_map): Replace with..
+	(binding_cluster::m_contents): ...this.
+	(store::store): Add node_mgr param.
+	(store::dump_to_pp): Delete.
+	(store::dump): Drop param.
+	(store::make_dump_widget): Update signature.
+	(store::get_any_binding): Delete.
+	(store::get_bits): New.
+	(store::get_bit_contents): New.
+	(store::set_value): Delete.
+	(store::clobber_region): Drop store_manager.  Add baseline_state
+	and region_model_manager.
+	(store::purge_region): Drop store_manager.
+	(store::fill_region): Drop.
+	(store::zero_fill_region): Drop.
+	(store::void mark_region_as_unknown): Drop store_manager.  Add
+	baseline_state.  Drop maybe_live_values.
+	(store::set_bits): New.
+	(store::set_bit_contents_raw): New.
+	(store::purge_state_involving): Generalize to symbolic::node.
+	(store::get_or_create_cluster): Drop store manager.  Add
+	baseline_state.
+	(store::can_merge_p): Drop store_manager.
+	(store::mark_as_escaped): Drop store_manager.  Add baseline_state.
+	(store::on_unknown_fncall): Drop store_manager.
+	(store::mark_region_as_conjured): New.
+	(store::get_representative_path_vars): Use value_set.
+	(store::canonicalize): Drop store_manager.
+	(store::loop_replay_fixup): Add baseline_state.
+	(store::on_maybe_live_values): Drop store_manager.  Add
+	baseline_state.
+	(store::replay_call_summary): Convert return type to bool.
+	(store::replay_call_summary_cluster): Likewise.
+	(store::replay_call_summary_bit_contents): New.
+	(store::bits_live_p): New.
+	(store::remove_overlapping_bindings): Delete.
+	(store::get_implicit_contents): New.
+	(store::get_baseline_contents): New.
+	(store::m_node_mgr): New field.
+	(store::m_called_unknown_fn): Update comment.
+	(class store_manager): Delete.
+	* string-scan.cc: New file.
+	* string-scan.h: New file.
+	* svalue.cc: Add includes of "diagnostics/markup.h" and
+	"analyzer/liveness-context.h".
+	(svalue::print_dump_widget_label): New.
+	(svalue::add_dump_widget_children): New.
+	(svalue::dump): Reimplement.
+	(svalue::to_json): Delete.
+	(svalue::make_json_obj): New.
+	(svalue::maybe_print_for_user): Handle SK_BIT_VECTOR.
+	(svalue::make_dump_widget): Delete in favor of
+	node::make_dump_widget.
+	(svalue::for_each_svalue): New.
+	(svalue::has_concrete_size_p): New.
+	(svalue::maybe_get_region): Replace with...
+	(svalue::maybe_get_symbolic_pointer): ...this.
+	(svalue::can_merge_p): Add early accept for equal svalues.
+	Port from region_svalue to symbolic::pointer.
+	(svalue::live_p): Drop.
+	(svalue::implicitly_live_p): Drop.
+	(cmp_csts_and_types): Make non-static.
+	(svalue::cmp_ptr): Reimplement in terms of ID comparison.
+	(class involvement_visitor): Reimplement in symbolic-nodes.cc.
+	(svalue::involves_p): Delete in favor of node::involves_p.
+	(svalue::extract_bit_range): Delete.
+	(svalue::maybe_fold_bits_within): Delete.
+	(svalue::maybe_get_deref_base_region): Port SK_REGION case
+	to SK_POINTER.
+	(svalue::maybe_get_type_from_typeinfo): Port to symbolic::pointer.
+	(svalue::conjured_p): New.
+	(svalue::derived_from_initial_value_p): New.
+	(region_svalue::key_t::operator<): Replace with...
+	(pointer_svalue::key_t::operator<): ...this.
+	(pointer_svalue::key_t::get_complexity): New.
+	(region_svalue::dump_to_pp): Replace with...
+	(pointer_svalue::dump_to_pp): ...this.
+	(region_svalue::print_dump_widget_label): Replace with...
+	(pointer_svalue::print_svalue_for_dump_widget_label): ...this.
+	(region_svalue::add_dump_widget_children): Replace with...
+	(pointer_svalue::add_dump_widget_children): ...this.
+	(region_svalue::accept): Replace with...
+	(pointer_svalue::accept): ...this.
+	(pointer_svalue::accept_node_visitor): New.
+	(pointer_svalue::to_json): New.
+	(region_svalue::implicitly_live_p): Replace with...
+	(pointer_svalue::implicitly_live_p): ...this.
+	(pointer_svalue::make_markup_node): New.
+	(region_svalue::eval_condition): Delete in favor of
+	symbolic::pointer::eval_condition.
+	(constant_svalue::print_dump_widget_label): Rename to...
+	(constant_svalue::print_svalue_for_dump_widget_label): ...this.
+	(constant_svalue::add_dump_widget_children): Delete.
+	(constant_svalue::accept_node_visitor): New.
+	(constant_svalue::to_json): New.
+	(constant_svalue::make_markup_node): New.
+	(constant_svalue::implicitly_live_p): Update signature.
+	(constant_svalue::maybe_fold_bits_within): Delete.
+	(unknown_svalue::print_dump_widget_label): Convert to...
+	(unknown_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unknown_svalue::add_dump_widget_children): Delete.
+	(unknown_svalue::accept_node_visitor): New.
+	(unknown_svalue::make_markup_node): New.
+	(unknown_svalue::maybe_fold_bits_within): Delete.
+	(poisoned_svalue::print_dump_widget_label): Rename to...
+	(poisoned_svalue::print_svalue_for_dump_widget_label): ...this.
+	(poisoned_svalue::add_dump_widget_children): Update signature.
+	(poisoned_svalue::accept_node_visitor): New.
+	(poisoned_svalue::to_json): New.
+	(poisoned_svalue::make_markup_node): New.
+	(poisoned_svalue::maybe_fold_bits_within): Delete.
+	(initial_svalue::initial_svalue): Move here from svalue.h.
+	Add assertions that m_reg is non-null and a base region.
+	(initial_svalue::print_dump_widget_label): Convert to...
+	(initial_svalue::print_svalue_for_dump_widget_label): ...this.
+	(initial_svalue::add_dump_widget_children): Update signature.
+	Chain up to base class.
+	(initial_svalue::accept_node_visitor): New.
+	(initial_svalue::to_json): New.
+	(initial_svalue::implicitly_live_p): Update for signature change.
+	(unaryop_svalue::print_dump_widget_label): Convert to...
+	(unaryop_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unaryop_svalue::add_dump_widget_children): Update signature.
+	Chain up to base class.
+	(unaryop_svalue::accept_node_visitor): New.
+	(unaryop_svalue::to_json): New.
+	(unaryop_svalue::make_markup_node): New.
+	(unaryop_svalue::implicitly_live_p): Update for signature change.
+	(unaryop_svalue::maybe_fold_bits_within): Delete.
+	(binop_svalue::print_dump_widget_label): Convert to...
+	(binop_svalue::print_svalue_for_dump_widget_label): ...this.
+	(binop_svalue::add_dump_widget_children): Update signature.
+	Chain up to base class.
+	(binop_svalue::accept_node_visitor): New.
+	(binop_svalue::to_json): New.
+	(binop_svalue::make_markup_node): New.
+	(binop_svalue::implicitly_live_p): Update for signature change.
+	(sub_svalue::key_t::operator<): Delete.
+	(sub_svalue::sub_svalue): Delete.
+	(sub_svalue::dump_to_pp): Delete.
+	(sub_svalue::print_dump_widget_label): Delete.
+	(sub_svalue::add_dump_widget_children): Delete.
+	(sub_svalue::accept): Delete.
+	(sub_svalue::implicitly_live_p): Delete.
+	(repeated_svalue::key_t::operator<): Delete.
+	(repeated_svalue::repeated_svalue): Delete.
+	(repeated_svalue::dump_to_pp): Delete.
+	(repeated_svalue::print_dump_widget_label): Delete.
+	(repeated_svalue::add_dump_widget_children): Delete.
+	(repeated_svalue::accept): Delete.
+	(repeated_svalue::all_zeroes_p): Delete.
+	(repeated_svalue::maybe_fold_bits_within): Delete.
+	(bits_within_svalue::key_t::operator<): Delete.
+	(bits_within_svalue::bits_within_svalue): Delete.
+	(bits_within_svalue::dump_to_pp): Delete.
+	(bits_within_svalue::print_dump_widget_label): Delete.
+	(bits_within_svalue::add_dump_widget_children): Delete.
+	(bits_within_svalue::maybe_fold_bits_within): Delete.
+	(bits_within_svalue::accept): Delete.
+	(bits_within_svalue::implicitly_live_p): Delete.
+	(svalue_from_bit_vector::key_t::operator<): New.
+	(svalue_from_bit_vector::svalue_from_bit_vector): New.
+	(svalue_from_bit_vector::dump_to_pp): New.
+	(svalue_from_bit_vector::print_svalue_for_dump_widget_label): New.
+	(svalue_from_bit_vector::add_dump_widget_children): New.
+	(svalue_from_bit_vector::accept_node_visitor): New.
+	(svalue_from_bit_vector::to_json): New.
+	(svalue_from_bit_vector::make_markup_node): New.
+	(svalue_from_bit_vector::accept): New.
+	(svalue_from_bit_vector::implicitly_live_p): New.
+	(svalue_from_bit_vector::all_zeroes_p): New.
+	(svalue_from_bit_vector::maybe_get_value_range_1): New.
+	(svalue_from_bit_vector::conjured_p): New.
+	(widening_svalue::print_dump_widget_label): Rename to...
+	(widening_svalue::print_svalue_for_dump_widget_label): ...this.
+	(widening_svalue::add_dump_widget_children): Update for signature
+	change.  Chain up to svalue implementation.
+	(widening_svalue::accept_node_visitor): New.
+	(widening_svalue::to_json): New.
+	(widening_svalue::make_markup_node): New.
+	(placeholder_svalue::print_dump_widget_label): Rename to...
+	(placeholder_svalue::print_svalue_for_dump_widget_label): ...this.
+	(placeholder_svalue::add_dump_widget_children): Delete.
+	(placeholder_svalue::accept_node_visitor): New.
+	(placeholder_svalue::to_json): New.
+	(placeholder_svalue::make_markup_node): New.
+	(unmergeable_svalue::print_dump_widget_label): Rename to...
+	(unmergeable_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unmergeable_svalue::add_dump_widget_children): Update for
+	signature change  Chain up to svalue implementation.
+	(unmergeable_svalue::implicitly_live_p): Update for signature
+	change.
+	(unmergeable_svalue::accept_node_visitor): New.
+	(unmergeable_svalue::to_json): New.
+	(unmergeable_svalue::make_markup_node): New.
+	(compound_svalue::key_t::operator<): Delete.
+	(compound_svalue::compound_svalue): Delete.
+	(compound_svalue::dump_to_pp): Delete.
+	(compound_svalue::print_dump_widget_label): Delete.
+	(compound_svalue::add_dump_widget_children): Delete.
+	(compound_svalue::accept): Delete.
+	(compound_svalue::maybe_fold_bits_within): Delete.
+	(conjured_svalue::key_t::operator<): Delete.
+	(conjured_svalue::dump_to_pp): Delete.
+	(conjured_svalue::print_dump_widget_label): Delete.
+	(conjured_svalue::add_dump_widget_children): Delete.
+	(conjured_svalue::accept): Delete.
+	(conjured_svalue::lhs_value_p): Delete.
+	(asm_output_svalue::print_dump_widget_label): Rename to...
+	(asm_output_svalue::print_svalue_for_dump_widget_label): ...this.
+	(asm_output_svalue::add_dump_widget_children): Update for
+	signature change.  Chain up to svalue implementation.
+	(asm_output_svalue::accept_node_visitor): New.
+	(asm_output_svalue::to_json): New.
+	(make_markup_node): New.
+	(const_fn_result_svalue::dump_to_pp): Likewise.
+	(const_fn_result_svalue::print_dump_widget_label): Rename to...
+	(const_fn_result_svalue::print_svalue_for_dump_widget_label):
+	...this.
+	(const_fn_result_svalue::add_dump_widget_children): Update for
+	signature change.  Chain up to svalue implementation.
+	(const_fn_result_svalue::accept_node_visitor): New.
+	(const_fn_result_svalue::to_json): New.
+	(const_fn_result_svalue::make_markup_node): New.
+	* svalue.h: Drop include of "text-art/widget.h".  Add include of
+	"analyzer/symbolic-pointers.h.  Drop
+	"using text_art::dump_widget_info;"
+	(enum svalue_kind): Replace SK_REGION with SK_POINTER.
+	Drop SK_SUB, SK_REPEATED, SK_BITS_WITHIN, SK_COMPOUND, and
+	SK_CONJURED.  Add SK_BIT_VECTOR.
+	(class svalue): Update leading comment to show changes to subclass
+	hierarchy.  Inherit from symbolic::value_node rather than directly
+	from symbolic::node.
+	(svalue::dyn_cast_svalue): New.
+	(svalue::to_json): Delete in favor of node::to_json.
+	(svalue::make_dump_widget): Delete in favor of
+	node::make_dump_widget.
+	(svalue::print_dump_widget_label): New.
+	(svalue::print_svalue_for_dump_widget_label): New.
+	(svalue::add_dump_widget_children): New.
+	(svalue::get_any_dump_color): New vfunc implementation.
+	(svalue::dyn_cast_region_svalue): Delete in favor of...
+	(svalue::dyn_cast_pointer_svalue): ...this.
+	(svalue::dyn_cast_sub_svalue): Delete vfunc.
+	(svalue::dyn_cast_repeated_svalue): Delete vfunc.
+	(svalue::dyn_cast_bits_within_svalue): Delete vfunc.
+	(svalue::dyn_cast_compound_svalue): Delete vfunc.
+	(svalue::dyn_cast_conjured_svalue): Delete vfunc.
+	(svalue::dyn_cast_svalue_from_bit_vector): New vfunc.
+	(svalue::for_each_svalue): New decl.
+	(svalue::has_concrete_size_p): New decl.
+	(svalue::maybe_get_region): Replace with...
+	(svalue::maybe_get_symbolic_pointer): ...this.
+	(svalue::live_p): Drop.
+	(svalue::implicitly_live_p): New.
+	(svalue::involves_p): Drop in favor of node::involves_p.
+	(svalue::extract_bit_range): Drop.
+	(svalue::maybe_fold_bits_within): Drop.
+	(svalue::conjured_p): New vfunc decl.
+	(svalue::derived_from_initial_value_p): New decl.
+	(svalue::svalue): Update for inheriting from value_node.
+	(svalue::make_json_obj): New decl.
+	(svalue::print_dump_widget_label): Drop in favor of
+	node::print_dump_widget_label.
+	(svalue::add_dump_widget_children): Drop in favor of
+	node::add_dump_widget_children.
+	(class region_svalue): Replace with...
+	(class pointer_svalue): ...this.
+	(is_a_helper <const region_svalue *>::test): Replace with...
+	(is_a_helper <const pointer_svalue *>::test): ...this.
+	(constant_svalue::key_t): Fix copy&paste error in leading comment.
+	(constant_svalue::print_dump_widget_label): Rename to...
+	(constant_svalue::print_svalue_for_dump_widget_label): ...this.
+	(constant_svalue::add_dump_widget_children): Update signature.
+	(constant_svalue::accept_node_visitor): New decl.
+	(constant_svalue::to_json): New decl.
+	(constant_svalue::make_markup_node): New decl.
+	(constant_svalue::implicitly_live_p): Update signature.
+	(constant_svalue::maybe_fold_bits_within): Delete.
+	(unknown_svalue::print_dump_widget_label): Rename to...
+	(unknown_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unknown_svalue::add_dump_widget_children): Update signature.
+	(unknown_svalue::accept_node_visitor): New decl.
+	(unknown_svalue::to_json): New decl.
+	(unknown_svalue::make_markup_node): New decl.
+	(unknown_svalue::maybe_fold_bits_within): Delete.
+	(enum class poison_kind): Move to common.h.
+	(poison_kind_to_str): Likewise.
+	(poisoned_svalue::print_dump_widget_label): Rename to...
+	(poisoned_svalue::print_svalue_for_dump_widget_label): ...this.
+	(poisoned_svalue::add_dump_widget_children): Update signature.
+	(poisoned_svalue::accept_node_visitor): New decl.
+	(poisoned_svalue::to_json): New decl.
+	(poisoned_svalue::make_markup_node): New decl.
+	(poisoned_svalue::maybe_fold_bits_within): Delete.
+	(setjmp_svalue::print_dump_widget_label): Rename to...
+	(setjmp_svalue::print_svalue_for_dump_widget_label): ...this.
+	(setjmp_svalue::add_dump_widget_children): Update signature.
+	(setjmp_svalue::accept_node_visitor): New decl.
+	(setjmp_svalue::to_json): New decl.
+	(setjmp_svalue::make_markup_node): New decl.
+	(class initial_svalue): Flesh out leading comment.
+	(initial_svalue::initial_svalue): Move ctor implementation to
+	svalue.cc.
+	(initial_svalue::print_dump_widget_label): Rename to...
+	(initial_svalue::print_svalue_for_dump_widget_label): ...this.
+	(initial_svalue::add_dump_widget_children): Update signature.
+	(initial_svalue::accept_node_visitor): New decl.
+	(initial_svalue::to_json): New decl.
+	(initial_svalue::make_markup_node): New decl.
+	(initial_svalue::implicitly_live_p): Update signature.
+	(class unaryop_svalue): Flesh out leading comment.
+	(unaryop_svalue::print_dump_widget_label): Rename to...
+	(unaryop_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unaryop_svalue::add_dump_widget_children): Update signature.
+	(unaryop_svalue::accept_node_visitor): New decl.
+	(unaryop_svalue::to_json): New decl.
+	(unaryop_svalue::make_markup_node): New decl.
+	(unaryop_svalue::implicitly_live_p): Update signature.
+	(unaryop_svalue::maybe_fold_bits_within): Delete.
+	(class binop_svalue): Flesh out leading comment.
+	(binop_svalue::print_dump_widget_label): Rename to...
+	(binop_svalue::print_svalue_for_dump_widget_label): ...this.
+	(binop_svalue::add_dump_widget_children): Update signature.
+	(binop_svalue::accept_node_visitor): New decl.
+	(binop_svalue::to_json): New decl.
+	(binop_svalue::make_markup_node): New decl.
+	(binop_svalue::implicitly_live_p): Update signature.
+	(class sub_svalue): Delete.
+	(is_a_helper <const sub_svalue *>::test): Delete.
+	(class repeated_svalue): Delete.
+	(is_a_helper <const repeated_svalue *>::test): Delete.
+	(class bits_within_svalue): Delete.
+	(is_a_helper <const bits_within_svalue *>::test): Delete.
+	(class svalue_from_bit_vector): New.
+	(is_a_helper <const svalue_from_bit_vector *>::test): New.
+	(class unmergeable_svalue): Flesh out leading comment.
+	(unmergeable_svalue::print_dump_widget_label): Rename to...
+	(unmergeable_svalue::print_svalue_for_dump_widget_label): ...this.
+	(unmergeable_svalue::add_dump_widget_children): Update signature.
+	(unmergeable_svalue::accept_node_visitor): New decl.
+	(unmergeable_svalue::to_json): New decl.
+	(unmergeable_svalue::make_markup_node): New decl.
+	(unmergeable_svalue::implicitly_live_p): Update signature.
+	(placeholder_svalue::print_dump_widget_label): Rename to...
+	(placeholder_svalue::print_svalue_for_dump_widget_label): ...this.
+	(placeholder_svalue::add_dump_widget_children): Update signature.
+	(placeholder_svalue::accept_node_visitor): New decl.
+	(placeholder_svalue::to_json): New decl.
+	(placeholder_svalue::make_markup_node): New decl.
+	(class widening_svalue): Flesh out leading comment.
+	(widening_svalue::print_dump_widget_label): Rename to...
+	(widening_svalue::print_svalue_for_dump_widget_label): ...this.
+	(widening_svalue::add_dump_widget_children): Update signature.
+	(widening_svalue::accept_node_visitor): New decl.
+	(widening_svalue::to_json): New decl.
+	(widening_svalue::make_markup_node): New decl.
+	(class compound_svalue): Delete.
+	(is_a_helper <const compound_svalue *>::test): Delete.
+	(class conjured_purge): Move to symbolic-nodes.h.
+	(class conjured_svalue): Delete.
+	(is_a_helper <const conjured_svalue *>::test): Delete.
+	(class asm_output_svalue): Flesh out leading comment.
+	(asm_output_svalue::print_dump_widget_label): Rename to...
+	(asm_output_svalue::print_svalue_for_dump_widget_label): ...this.
+	(asm_output_svalue::add_dump_widget_children): Update signature.
+	(asm_output_svalue::accept_node_visitor): New decl.
+	(asm_output_svalue::to_json): New decl.
+	(asm_output_svalue::make_markup_node): New decl.
+	(const_fn_result_svalue::print_dump_widget_label): Rename to...
+	(const_fn_result_svalue::print_svalue_for_dump_widget_label): ...this.
+	(const_fn_result_svalue::add_dump_widget_children): Update signature.
+	(const_fn_result_svalue::accept_node_visitor): New decl.
+	(const_fn_result_svalue::to_json): New decl.
+	(const_fn_result_svalue::make_markup_node): New decl.
+	* symbolic-bit-contents.cc: New file.
+	* symbolic-bit-contents.h: New file.
+	* symbolic-bit-vectors.cc: New file.
+	* symbolic-bit-vectors.h: New file.
+	* symbolic-memory-offsets.h: New file.
+	* symbolic-memory-ranges.cc: New file.
+	* symbolic-memory-ranges.h: New file.
+	* symbolic-nodes.cc: Include "selftest.h", "diagnostics/markup.h",
+	"analyzer/symbolic-scalars.h", "analyzer/symbolic-bit-vectors.h",
+	and "analyzer/analyzer-selftests.h".
+	(symbolic::node::cmp_ids): Cast to int rarther than long.
+	(symbolic::node::cmp_ptr_ptr): New.
+	(symbolic::node::dump_to_pp): New.
+	(symbolic::node::dump): New.
+	(symbolic::node::dump_to_logger): New.
+	(symbolic::node::make_dump_widget): New.
+	(symbolic::node::make_json_obj): New.
+	(symbolic::node::start_any_dump_color): New.
+	(symbolic::node::end_any_dump_color): New.
+	(symbolic::node::get_text_art_tree_style): New.
+	(symbolic::node::involves_p): New.
+	(symbolic::value_node::implicitly_live_p): New.
+	(symbolic::pp_element_for_node::add_to_phase_2): New.
+	(symbolic::node_set<NodeClass>::contains): New.
+	(symbolic::node_set<NodeClass>::make_dump_widget): New.
+	(symbolic::node_set<NodeClass>::dump_to_pp): New.
+	(symbolic::node_set<NodeClass>::dump): New.
+	(symbolic::node_manager::node_manager): Create m_scalar_managers,
+	m_bit_contents_manager, and m_bit_vector_manager.
+	(symbolic::node_manager::log_stats): Add comment.
+	(symbolic::node_visitor::visit_bit_contents): New.
+	(symbolic::node_visitor::visit_bit_vector): New.
+	(symbolic::node_visitor::visit_region): New.
+	(symbolic::node_visitor::visit_scalar_unitless): New.
+	(symbolic::node_visitor::visit_scalar_bit): New.
+	(symbolic::node_visitor::visit_scalar_byte): New.
+	(symbolic::node_visitor::visit_svalue): New.
+	(symbolic::value_node_visitor::visit_bit_vector): New.
+	(symbolic::value_node_visitor::visit_svalue): New.
+	(selftest::assert_symbolic_node_dump_eq): New.
+	(selftest::assert_same_symbolic_node): New.
+	(selftest::assert_different_symbolic_node): New.
+	(selftest::assert_symbolic_node_markup_text_eq): New.
+	(selftest::test_node_visitor): New.
+	(selftest::analyzer_symbolic_nodes_cc_tests): New.
+	* symbolic-nodes.h: Include "pretty-print-markup.h",
+	"analyzer/analyzer-logging.h", "analyzer/units.h",
+	"analyzer/integer-with-unit.h", "text-art/tree-widget.h", and
+	"text-art/dump.h".
+	(node_manager::get_bit_contents_manager): New accessor.
+	(node_manager::get_bit_vector_manager): New accessor.
+	(node_manager::get_scalars): New accessor.
+	(node_manager::m_scalar_managers): New field.
+	(node_manager::m_bit_contents_manager): New field.
+	(node_manager::m_bit_vector_manager): New field.
+	(struct markup_context): New.
+	(class node): Expand leading comment.  Delete copy/move
+	constructors/assignment operators.
+	(node::cmp): New.
+	(node::cmp_ptr_ptr): New decl.
+	(node::dump_to_pp): New decl.
+	(node::dump_to_logger): New decl.
+	(node::dump): New decl.
+	(node::make_dump_widget): New decl.
+	(node::get_any_dump_color): New vfunc decl.
+	(node::accept_node_visitor): New vfunc decl.
+	(node::to_json): New vfunc decl.
+	(node::make_markup_node): New vfunc decl.
+	(node::involves_p): New decl.
+	(node::start_any_dump_color): New decl.
+	(node::end_any_dump_color): New decl.
+	(node::get_text_art_tree_style): New decl.
+	(node::make_json_obj): New decl.
+	(node::print_dump_widget_label): New decl.
+	(node::add_dump_widget_children): New decl.
+	(struct CompareNodeIds): New.
+	(class pp_element_for_node): New.
+	(class node_set): New.
+	(node_set<NodeClass>::union_): New.
+	(node_set<NodeClass>::operator<): New.
+	(struct node_dump_state): New.
+	(dump_node_tree_to_pp): New.
+	(dump_node_tree_to_file): New.
+	(dump_node_tree_to_stderr): New.
+	(dump_node_tree_to_logger): New.
+	(value_set): New.
+	(class value_node): New.
+	(class node_visitor): New.
+	(class value_node_visitor): New.
+	(struct baseline_key): New.
+	(class conjured_purge): New.
+	(selftest::assert_symbolic_node_dump_eq): New decl.
+	(ASSERT_SYMBOLIC_NODE_DUMP_EQ): New.
+	(selftest::assert_same_symbolic_node): New.
+	(ASSERT_SAME_SYMBOLIC_NODE): New.
+	(ASSERT_SAME_SYMBOLIC_NODE_AT): New.
+	(selftest::assert_different_symbolic_node): New.
+	(ASSERT_DIFFERENT_SYMBOLIC_NODE): New.
+	(selftest::assert_symbolic_node_markup_text_eq): New.
+	(ASSERT_SYMBOLIC_NODE_MARKUP_TEXT_EQ): New.
+	* symbolic-pointers.cc: New file.
+	* symbolic-pointers.h: New file.
+	* symbolic-ranges.cc: New file, partly adapted from ranges.cc.
+	* symbolic-ranges.h: New file.
+	* symbolic-scalars.cc: New file.
+	* symbolic-scalars.h: New file.
+	* type.h: New file.
+	* varargs.cc: (get_va_copy_arg): Update leading comment to reflect
+	that this is just a pointer extracted from va_list, not the
+	va_list itself.  Port to new implementation.  Drop get_store_value
+	call in favor of get_rvalue.  Unify some logic between the two
+	branches.
+	(get_stateful_arg): Add cast to ptr_type_node.
+	(kf_va_start::impl_call_pre): Use ptr_type_node.  Port to new
+	implementation when marking region as unknown.
+	(kf_va_copy::impl_call_pre): Use ptr_type_node.  Rename
+	"in_va_list" to "in_impl_ptr" as it's not necessarily a va_list.
+	Port from maybe_get_region to deref_rvalue.
+	(maybe_get_var_arg_region):  Port from maybe_get_region to
+	deref_rvalue.
+	(maybe_get_var_arg_svalue): New.
+	(kf_va_arg::impl_call_pre): Port from maybe_get_region to
+	deref_rvalue, and use maybe_get_var_arg_svalue.
+	* write-to-const-diagnostics.cc: Rename "reg" to base_reg" throughout.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* access-diagram.cc: Update for introduction of
+	symbolic::node_manager, creating node_manager and
+	accessing its region_model_manager rather than creating
+	the latter directly.
+	* common.h (class symbolic::node_manager): New forward decl.
+	(class call_string): Likewise.
+	* constraint-manager.cc: Update for introduction of
+	symbolic::node_manager, creating node_manager instances and
+	accessing their region_model_manager rather than creating
+	instances of the latter directly.  Update for region_model ctor
+	taking a node_manager & rather than a region_model_manager *.
+	* diagnostic-manager.cc: Likewise.
+	* engine.cc: Likewise.
+	* program-point.cc: Likewise.
+	* program-state.cc: Likewise.
+	* program-state.h: Likewise.
+	* ranges.cc: Likewise.
+	* region-model-manager.cc
+	(region_model_manager::region_model_manager): Add "node_mgr" param
+	and use it to initialize m_node_mgr.  Update for move of
+	m_next_node_id into node_manager.
+	(region_model_manager::log_stats): Drop logging of m_next_node_id.
+	* region-model-manager.h
+	(region_model_manager::region_model_manager): Add "node_mgr"
+	param.
+	(region_model_manager::get_num_nodes): Move to node_manager.
+	(region_model_manager::alloc_node_id): Delegate to m_node_mgr.
+	(region_model_manager::get_node_manager): New accessor.
+	(region_model_manager::m_node_mgr): New field.
+	(region_model_manager::m_next_node_id): Move to node_manager.
+	* region-model.cc (region_model::region_model): Update param from
+	region_model_manager * to symbolic::node_manager &.
+	(engine::engine): Update for introduction of node_manager.
+	(engine::log_stats): Likewise.
+	(selftest) Update selftests for introduction of
+	symbolic::node_manager, creating node_manager instances and
+	accessing their region_model_manager rather than creating
+	instances of the latter directly.  Update for region_model ctor
+	taking a node_manager & rather than a region_model_manager *.
+	* region-model.h (region_model::region_model): Change param from
+	region_model_manager * to symbolic::node_manager &.
+	(region_model::get_node_manager): New accessor.
+	(region_model::m_node_mgr): New field.
+	(engine::engine): Change param from region_model_manager & to
+	symbolic::node_manager &.
+	(engine::get_node_manager): New.
+	(engine::get_model_manager): New.
+	(engine::get_known_function_manager): Update.
+	(engine::m_mgr): Replace field with...
+	(engine::m_node_mgr): ...this.
+	* region.cc: Update for region_model ctor taking a node_manager &
+	rather than a region_model_manager *.
+	* sm-signal.cc (update_model_for_signal_handler): Likewise.
+	* state-purge.cc (state_purge_per_decl::process_worklists):
+	Likewise.
+	* store.cc (get_svalue_for_ctor_val): Likewise.
+	(selftest::test_binding_key_overlap): Update for introduction of
+	symbolic::node_manager
+	* symbolic-nodes.cc: Include "analyzer/analyzer-logging.h",
+	"analyzer/region-model.h", and "analyzer/region-model-manager.h".
+	(symbolic::node_manager::node_manager): New.
+	(ymbolic::node_manager::~node_manager): New.
+	(symbolic::node_manager::log_stats): New.
+	* symbolic-nodes.h (class node_manager): New.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* analyzer-selftests.cc (run_analyzer_selftests): Call
+	analyzer_complexity_cc_tests.
+	* analyzer-selftests.h (analyzer_complexity_cc_tests): New decl.
+	* complexity.cc: Include "selftest.h".
+	(complexity::complexity): New ctor.
+	(complexity::from_child_complexities): New.
+	(complexity::operator+): New.
+	(complexity::operator+=): New.
+	(selftest::analyzer_complexity_cc_tests): New.
+	* complexity.h (complexity::complexity): New ctor decl.
+	(complexity::from_child_complexities): New decl.
+	(complexity::operator+): New decl.
+	(complexity::operator+=): New decl.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* common.h (class symbolic::node): New forward decl.
+	* complexity.cc: Update comment.
+	* complexity.h: Likewise.
+	* kf.cc: Update for renaming of
+	region_model_manager::alloc_symbol_id to
+	region_model_manager::alloc_node_id.
+	* region-model-manager.cc: Update for renaming of
+	region_model_manager::alloc_symbol_id to
+	region_model_manager::alloc_node_id, and m_next_symbol_id to
+	m_next_node_id.
+	* region-model-manager.h (region_model_manager::get_num_symbols):
+	Rename to...
+	(region_model_manager::get_num_nodes): ...this.
+	(region_model_manager::alloc_symbol_id): Rename to...
+	(region_model_manager::alloc_node_id): ...this.
+	(region_model_manager::m_next_symbol_id): Rename to...
+	(region_model_manager::m_next_node_id): ...this.
+	* region-model.cc: Update for renaming of
+	region_model_manager::alloc_symbol_id to
+	region_model_manager::alloc_node_id.
+	* region.cc: Likewise.  Rename "symbol" to "symbolic::node"
+	throughout.
+	* region.h: Likewise.  Replace include of "analyzer/symbol.h" with
+	"analyzer/symbolic-nodes.h".
+	* svalue.cc: Likewise.
+	* svalue.h: Likewise.
+	* symbol.cc: Rename to...
+	* symbolic-nodes.cc: .. .this.  Replace include of
+	"analyzer/symbol.h" with "analyzer/symbolic-nodes.h".  Rename
+	"symbol" to "symbolic::node" throughout.
+	* symbol.h: Rename to...
+	* symbolic-nodes.h: ...this, updating include guards.
+	(class symbol): Rename to...
+	(symbolic::node): ...this.  Flesh out leading comment somewhat.
+	Modernize "id_t" to Use "using" rather than "typedef".  Add
+	virtual dtor.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* analyzer-selftests.cc (run_analyzer_selftests): Call
+	analyzer_concrete_ranges_cc_tests.
+	* analyzer-selftests.h (analyzer_concrete_ranges_cc_tests): New
+	decl.
+	* concrete-ranges.cc: New file, based in parts on material from
+	ranges.cc
+	* concrete-ranges.h: New file.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* analyzer-selftests.cc (run_analyzer_selftests): Call
+	analyzer_integer_with_unit_cc_tests.
+	* analyzer-selftests.h (analyzer_integer_with_unit_cc_tests): New
+	decl.
+	* integer-with-unit.cc: New file.
+	* integer-with-unit.h: New file.
+	* units.h: New file.
+
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* analyzer-selftests.cc (run_analyzer_selftests): Call
+	analyzer_integer_cc_tests.
+	* analyzer-selftests.h (analyzer_integer_cc_tests): New decl.
+	* integer.cc: New file.
+	* integer.h: New file.
+
 2026-10-28  David Malcolm  <dmalcolm@redhat.com>
 
 	* common.h (cmp_types): New decl.
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index ec3821c..c76e3d0 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -1,3 +1,10 @@
+2026-11-13  Christopher Bazley  <chris.bazley@arm.com>
+
+	PR c/128606
+	* gimple-parser.cc (c_parser_gimple_postfix_expression):
+	Substitute a call to constant_lower_bound () in place of
+	to_constant ().
+
 2026-11-11  Matt Turner  <mattst88@gmail.com>
 
 	PR c/125418
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 1bc8b3c..ece4b4b 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -1,3 +1,8 @@
+2026-11-13  Jason Merrill  <jason@redhat.com>
+
+	* decl2.cc (c_parse_final_cleanups): Build contract wrappers
+	after finish_module_processing.
+
 2026-11-12  Jason Merrill  <jason@redhat.com>
 
 	* contracts.cc (lookup_std_type): Set TREE_PUBLIC.
diff --git a/gcc/d/ChangeLog b/gcc/d/ChangeLog
index 1ae3d57..c73a4d0 100644
--- a/gcc/d/ChangeLog
+++ b/gcc/d/ChangeLog
@@ -1,3 +1,12 @@
+2026-11-13  Guillaume Gomez  <contact@guillaume-gomez.fr>
+
+	* d-attribs.cc (handle_noreturn_attribute, handle_malloc_attribute)
+	(handle_nonnull_attribute, handle_transaction_pure_attribute)
+	(handle_omp_declare_simd_attribute, d_handle_noreturn_attribute)
+	(d_handle_malloc_attribute, d_handle_nonnull_attribute)
+	(d_handle_transaction_pure_attribute)
+	(d_handle_omp_declare_simd_attribute): Prepend functions with `d_`
+
 2026-11-10  Arsen Arsenović  <aarsenovic@baylibre.com>
 
 	* d-codegen.cc (build_vthis_function): Update to use new
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 2d2bf16..013f128 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -1,3 +1,20 @@
+2026-11-13  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/82173
+	* expr.cc (gfc_pdt_requires_hidden_arg): Change attr.pointer to
+	attr->class_pointer to obtain intended result.
+	* trans-expr.cc (gfc_conv_procedure_call): Extend result copying
+	for array transformational functions to include parameterized as
+	well as allocatable components. For function calls that are not
+	direct_byref, deallocate the temporary paramterized components
+	to prevent double frees of the argument components on leaving
+	scope.
+	(gfc_trans_arrayfunc_assign): For array transformational like-
+	wise deallocate paramterized components.
+	* trans-intrinsic.cc (copy_pdt_components): New function to
+	copy the result paramterized componts for the same reason.
+	(gfc_conv_intrinsic_merge, gfc_conv_intrinsic_transfer): Use it.
+
 2026-11-12  Harald Anlauf  <anlauf@gmx.de>
 
 	PR fortran/128656
diff --git a/gcc/jit/ChangeLog b/gcc/jit/ChangeLog
index b2cc5dd..fc42436 100644
--- a/gcc/jit/ChangeLog
+++ b/gcc/jit/ChangeLog
@@ -1,3 +1,16 @@
+2026-11-13  Guillaume Gomez  <contact@guillaume-gomez.fr>
+
+	* dummy-frontend.cc (handle_cold_attribute, handle_format_arg_attribute)
+	(handle_format_attribute, handle_nonnull_attribute)
+	(handle_noreturn_attribute, handle_patchable_function_entry_attribute)
+	(handle_sentinel_attribute, handle_transaction_pure_attribute)
+	(jit_handle_cold_attribute, jit_handle_format_arg_attribute)
+	(jit_handle_format_attribute, jit_handle_nonnull_attribute)
+	(jit_handle_noreturn_attribute)
+	(jit_handle_patchable_function_entry_attribute)
+	(jit_handle_sentinel_attribute, jit_handle_transaction_pure_attribute):
+	Prepend functions with `jit_`
+
 2026-11-10  Arsen Arsenović  <aarsenovic@baylibre.com>
 
 	* dummy-frontend.cc (tree_type_to_jit_type):Update to use new
diff --git a/gcc/rust/ChangeLog b/gcc/rust/ChangeLog
index 44a18f5..f721bba 100644
--- a/gcc/rust/ChangeLog
+++ b/gcc/rust/ChangeLog
@@ -1,3 +1,15 @@
+2026-11-13  Guillaume Gomez  <contact@guillaume-gomez.fr>
+
+	* rust-attribs.cc (handle_noreturn_attribute)
+	(rust_handle_noreturn_attribute, handle_malloc_attribute)
+	(rust_handle_malloc_attribute, handle_nonnull_attribute)
+	(rust_handle_nonnull_attribute, handle_transaction_pure_attribute)
+	(rust_handle_transaction_pure_attribute)
+	(handle_omp_declare_simd_attribute)
+	(rust_handle_omp_declare_simd_attribute, handle_cold_attribute)
+	(handle_hot_attribute, rust_handle_cold_attribute)
+	(rust_handle_hot_attribute): Prepend functions with `rust_`
+
 2026-11-10  Arsen Arsenović  <aarsenovic@baylibre.com>
 
 	* backend/rust-tree.cc (rs_type_quals): Update to use and return
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 42d682c..ba86f79 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -1,3 +1,286 @@
+2026-11-13  David Malcolm  <dmalcolm@redhat.com>
+
+	* c-c++-common/analyzer/aliasing-6.c: New test.
+	* c-c++-common/analyzer/attr-const-3.c: Tweak depth param.
+	* c-c++-common/analyzer/call-summaries-malloc.c: Add xfails.
+	* c-c++-common/analyzer/call-summaries-pr107158-2.c: Drop xfails.
+	* c-c++-common/analyzer/call-summaries-pr107158.c: Likewise.
+	* c-c++-common/analyzer/capacity-1.c (test_4): Update expected
+	capacity message.
+	* c-c++-common/analyzer/compound-assignment-5.c: Drop comment.
+	* c-c++-common/analyzer/deref-before-check-3.c: New test.
+	* c-c++-common/analyzer/double-free-2.c: New test.
+	* c-c++-common/analyzer/flex-with-call-summaries.c: Drop xfail.
+	* c-c++-common/analyzer/flex-without-call-summaries.c: Update
+	expected results.
+	* c-c++-common/analyzer/infinite-loop-doom-d_main-IdentifyVersion.c:
+	Add dg-bogus for leak false positive seen whilst developing patch.
+	* c-c++-common/analyzer/large-constants.c: New test.
+	* c-c++-common/analyzer/leak-multiple-returns.c: New test.
+	* c-c++-common/analyzer/leak-pr108045-with-call-summaries.c: Drop
+	xfails.
+	* c-c++-common/analyzer/leak-pr126831.c: New test.
+	* c-c++-common/analyzer/leak-pr126832.c: New test.
+	* c-c++-common/analyzer/loop-0-up-to-n-by-1-with-iter-obj.c: Add
+	expected "UNKNOWN" in 2nd iteration.
+	* c-c++-common/analyzer/loop-2.c: Likewise.  Update expected
+	constraint after loop.
+	* c-c++-common/analyzer/loop-2a.c: Likewise.
+	* c-c++-common/analyzer/maybe-live-1.c: New test.
+	* c-c++-common/analyzer/maybe-live-2.c: New test.
+	* c-c++-common/analyzer/null-compare.c: New test.
+	* c-c++-common/analyzer/null-terminated-strings-2.c: Drop xfails.
+	* c-c++-common/analyzer/out-of-bounds-bits.c: New test.
+	* c-c++-common/analyzer/out-of-bounds-diagram-11.c: Update
+	expected diagram to show simplication of
+	'(size * 16) - (size * 4)' to 'size * 12'.
+	(test_99): Add expected output now that new implementation is able
+	to create a diagram for this case.
+	* c-c++-common/analyzer/out-of-bounds-diagram-3.c: Update expected
+	diagram.
+	* c-c++-common/analyzer/out-of-bounds-diagram-pr110928.c: Update
+	comment and expected output.  Fix missing "return".
+	* c-c++-common/analyzer/out-of-bounds-pr114472.c: Add expected
+	warnings from analyzer.
+	* c-c++-common/analyzer/paths-5.c: Tweak number of expected
+	exploded nodes.
+	* c-c++-common/analyzer/pointer-comparison-pr125304-eq.c
+	(test_pointer_eq): Drop xfails.
+	(test_string_literals): Likewise.
+	* c-c++-common/analyzer/pointer-comparison-pr125304-ge.c
+	(test_pointer_ge): Likewise.
+	* c-c++-common/analyzer/pointer-comparison-pr125304-gt.c
+	(test_pointer_gt): Likewise.
+	* c-c++-common/analyzer/pointer-comparison-pr125304-le.c
+	(test_pointer_le): Likewise.
+	* c-c++-common/analyzer/pointer-comparison-pr125304-lt.c
+	(test_pointer_lt): Likewise.
+	* c-c++-common/analyzer/strlen-pr113999.c: Include
+	"analyzer-decls.h" and use it to tighten up the expected results.
+	* c-c++-common/analyzer/strncpy-1.c (test_zero_fill): Remove
+	xfails.
+	* c-c++-common/analyzer/symbolic-1.c: Update comment referring to
+	store.h.
+	* c-c++-common/analyzer/symbolic-4.c: Update expected result.
+	* c-c++-common/analyzer/taint-inheritance.c: New test.
+	* c-c++-common/analyzer/uintptr-cast-double-free.c: New test.
+	* c-c++-common/analyzer/use-after-free-4.c: New test.
+	* c-c++-common/analyzer/use-after-free-5.c: New test.
+	* g++.dg/analyzer/fanalyzer-show-events-in-system-headers-default.C:
+	Update expected message.
+	* g++.dg/analyzer/fanalyzer-show-events-in-system-headers-no.C:
+	Likewise.
+	* g++.dg/analyzer/initializers-with-RANGE_EXPR.C: New test.
+	* g++.dg/analyzer/out-of-bounds-placement-new.C: Add expected
+	warning about allocation size.
+	* g++.dg/analyzer/pr100244.C: Add -fno-sized-deallocation.
+	* g++.dg/analyzer/std-unique_ptr-3.C: New test.
+	* g++.dg/analyzer/torture/std-string-ctor-large-literal.C
+	(test_ctor_large): Remove xfail.
+	* g++.dg/analyzer/torture/std-string-ctor-small-literal.C
+	(test_ctor_small): Likewise.
+	* gcc.dg/analyzer/analyzer-decls.h (__analyzer_hexdump): New decl.
+	* gcc.dg/analyzer/boxed-malloc-1.c: Tweak expected messages.
+	* gcc.dg/analyzer/call-summaries-2.c: Update expected messages to
+	reflect improved precision of analysis; remove and add xfails.
+	* gcc.dg/analyzer/data-model-1.c: Include <stdint.h>.
+	(union u): Convert "i" from "int" to "intptr_t".
+	* gcc.dg/analyzer/doom-d_main-IdentifyVersion.c: Add dg-bogus for
+	leak false positive seen whilst developing patch.  Drop xfails.
+	* gcc.dg/analyzer/ice-pr113496.c: Add warning about uninitialized
+	return value.
+	* gcc.dg/analyzer/leak-expressions-1.c: New test.
+	* gcc.dg/analyzer/leak-pr126832-macro.c: New test.
+	* gcc.dg/analyzer/mkdtemp-1.c (test_errno): Split into...
+	(test_errno_possibly_aliased): ...this and...
+	(test_errno_not_aliased): ...this.
+	* gcc.dg/analyzer/null-deref-pr102671-1.c: Add
+	-Wno-analyzer-too-complex.
+	* gcc.dg/analyzer/null-terminated-strings-1.c: Update expected
+	results.  Rewrite tests to avoid use of __analyzer_describe.
+	* gcc.dg/analyzer/out-of-bounds-diagram-1-debug.c: Update expected
+	diagram for changes in how byte ranges are displayed.
+	* gcc.dg/analyzer/out-of-bounds-diagram-16.c: Update expected
+	diagram to show where write is from.
+	* gcc.dg/analyzer/out-of-bounds-diagram-2.c: Update expected
+	diagram for changes to size allocation.
+	* gcc.dg/analyzer/out-of-bounds-diagram-9.c: Update expected
+	diagram.
+	* gcc.dg/analyzer/pattern-test-2.c: Update expected messages.
+	* gcc.dg/analyzer/pipe-1.c: Drop tests of __analyzer_describe.
+	* gcc.dg/analyzer/pipe2-1.c: Likewise.
+	* gcc.dg/analyzer/pr104417.c (warn_realloc_extern_ptrarr_offset):
+	Add expected -Wanalyzer-free-of-non-heap warning.
+	* gcc.dg/analyzer/pr104434-nonconst.c (exit_level_0:): Drop
+	xfails.
+	* gcc.dg/analyzer/pr93355-localealias.c (read_alias_file): Drop
+	xfail.
+	* gcc.dg/analyzer/pr93382.c: Drop xfail.
+	* gcc.dg/analyzer/single-field.c: Update expected result of
+	__analyzer_describe.
+	* gcc.dg/analyzer/state-diagram-2.c (test_pointer_to_global): Add
+	xfail.
+	* gcc.dg/analyzer/state-diagram-5-sarif.py: Update for changes in
+	JSON output.
+	* gcc.dg/analyzer/stdarg-1-ms_abi.c: Tweak expected messages.
+	* gcc.dg/analyzer/stdarg-1.c: Tweak expected messages for
+	target-specific differences in whether the message reports what
+	leaked.
+	* gcc.dg/analyzer/stdarg-2.c: Likewise.
+	* gcc.dg/analyzer/strcpy-3.c: Drop test of __analyzer_describe.
+	* gcc.dg/analyzer/strlen-1.c (call_strlen_6a): New.
+	(test_memcpy_without_termination): New.
+	(call_strlen_6b): New.
+	(test_memcpy_with_manual_termination): New.
+	* gcc.dg/analyzer/taint-read-offset-1.c: Update expected messages.
+	Add xfail about false positive.
+	* gcc.dg/analyzer/torture/loop-inc-ptr-2.c: Tweak expected number
+	of exploded nodes.
+	* gcc.dg/analyzer/torture/pr59037.c: Add comment and
+	-Wno-analyzer-use-of-uninitialized-value.
+	* gcc.dg/analyzer/unknown-fns-5.c: New test.
+	* gcc.dg/analyzer/unknown-fns-6.c: New test.
+	* gcc.dg/analyzer/vla-1.c (test_1): Mark test as xfailing.
+	(test_vla_ptr): New test.
+	* gcc.dg/plugin/infoleak-CVE-2011-1078-1.c: Add
+	-Wno-analyzer-use-of-uninitialized-value.
+	* gcc.dg/plugin/infoleak-uninit-size-1.c (test_uninit_size): Add
+	expected warning.
+	* gcc.dg/plugin/infoleak-vfio_iommu_type1.c: Remove xfail.
+	* gcc.dg/plugin/taint-pr112850-too-complex.c: Tweak depth param.
+
+2026-11-13  Alexandre Oliva  <oliva@adacore.com>
+
+	* gcc.target/i386/pr92080-13.c: Add -no-pie.
+
+2026-11-13  Andrea Pinski  <andrew.pinski@oss.qualcomm.com>
+
+	* gcc.dg/tree-ssa/vrp-cmp-sub-ptr-1.c: New test.
+
+2026-11-13  Andrea Pinski  <andrew.pinski@oss.qualcomm.com>
+
+	* gcc.dg/tree-ssa/vrp-cmp-sub-4.c: New test.
+	* gcc.dg/tree-ssa/vrp-cmp-sub-5.c: New test.
+
+2026-11-13  Uros Bizjak  <ubizjak@gmail.com>
+
+	PR target/128662
+	* gcc.target/i386/pr128662.c: New test.
+	* gcc.target/i386/pr78103-1.c (dg-options): Add
+	-mtune-ctrl=^avoid_false_dep_for_bsr.
+	* gcc.target/i386/pr78103-2.c: Ditto.
+	* gcc.target/i386/pr78103-3.c: Ditto.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vshll_n.c: New test.
+	* gcc.target/aarch64/neon/shift_imm_range.c: Likewise.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vshrn_n.c: New test.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vsli_n.c: New test.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vqshl_n.c: New test.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vrshr_n.c: New test.
+	* gcc.target/aarch64/arg-type-diagnostics-1.c: Update the expected
+	message for a non-constant shift amount.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vshl.c: New test.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/vshl_n.c: New test.
+	* gcc.target/aarch64/neon/vshr_n.c: Likewise.
+	* gcc.target/aarch64/neon/vsra_n.c: Likewise.
+	* gcc.target/aarch64/scalar_intrinsics.c: vsrad_n now folds to a
+	shifted add.
+	* gcc.target/aarch64/sshr64_1.c: Drop the shift-by-zero case, which
+	the ACLE does not allow.
+	* gcc.target/aarch64/ushr64_1.c: Likewise.
+	* gcc.target/aarch64/advsimd-intrinsics/vshl-opt-3.c: An arithmetic
+	shift right by the element width now folds.
+
+2026-11-13  Dhruv Chawla  <dhruvc@nvidia.com>
+
+	* gcc.target/aarch64/neon/arm_neon_test.h (TEST_UNARY_N,
+	TEST_UNIFORM_UNARY_N, TEST_BINARY_N, TEST_UNIFORM_BINARY_N): New
+	macros.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* gcc.target/aarch64/fmla_intrinsic_1.c: Rewrite `TEST_VMLA`
+	so the lane choice is always valid and doesn't cause a compiler
+	error when trying to call `vfma`. Also remove excessive
+	backslashes from dejagnu directives.
+	* gcc.target/aarch64/fmls_intrinsic_1.c: Likewise.
+	* gcc.target/aarch64/simd/pr99195_3.c: Add
+	`-fno-trapping-math` to prevent the optimization barrier being
+	introduced and generating unnecessary `fmov`s.
+	* gcc.target/aarch64/neon/vfma.c: New test.
+	* gcc.target/aarch64/neon/vfms.c: New test.
+
+2026-11-13  Karl Meakin  <karl.meakin@arm.com>
+
+	* gcc.target/aarch64/neon/vmla.c: New test.
+	* gcc.target/aarch64/neon/vmls.c: New test.
+
+2026-11-13  Christopher Bazley  <chris.bazley@arm.com>
+
+	PR c/128606
+	* gcc.target/aarch64/sve/pr128606_1.c,
+	gcc.target/aarch64/sve/pr128606_10.c,
+	gcc.target/aarch64/sve/pr128606_11.c,
+	gcc.target/aarch64/sve/pr128606_2.c,
+	gcc.target/aarch64/sve/pr128606_3.c,
+	gcc.target/aarch64/sve/pr128606_4.c,
+	gcc.target/aarch64/sve/pr128606_5.c,
+	gcc.target/aarch64/sve/pr128606_6.c,
+	gcc.target/aarch64/sve/pr128606_7.c,
+	gcc.target/aarch64/sve/pr128606_8.c,
+	gcc.target/aarch64/sve/pr128606_9.c: New tests.
+	* gcc.target/aarch64/sve/pr128606_primes.h: Shared test code.
+
+2026-11-13  Suganya Thirumurthy  <Suganya.Thirumurthy@amd.com>
+
+	* gcc.target/i386/vectorize-aocl1.c: Also test amd_vrd2_acos,
+	amd_vrd4_acos, amd_vrd8_acos, amd_vrs8_acosf, amd_vrd2_asin,
+	amd_vrd4_asin, amd_vrd4_atan, amd_vrd2_atan2, amd_vrd4_atan2,
+	amd_vrd8_atan2, amd_vrd2_cbrt, amd_vrs4_cbrtf, amd_vrs8_cbrtf,
+	amd_vrd2_cosh, amd_vrd4_cosh, amd_vrd8_cosh, amd_vrs16_coshf,
+	amd_vrd2_erfc, amd_vrd4_erfc, amd_vrd8_erfc, amd_vrs4_erfcf,
+	amd_vrs8_erfcf, amd_vrs16_erfcf, amd_vrd4_exp10, amd_vrd8_exp10,
+	amd_vrs8_exp10f, amd_vrs16_exp10f, amd_vrs4_tanf, amd_vrs8_tanf,
+	amd_vrd2_tanh, amd_vrd4_tanh and amd_vrd8_tanh. Adjust
+	scan-assembler-times patterns with word boundaries (\m...\M).
+	Without them, names such as amd_vrd4_cos also matched
+	amd_vrd4_cosh, and similar collisions occurred for tan/tanh,
+	atan/atan2 and erf/erfc.
+
+2026-11-13  Paul Thomas  <pault@gcc.gnu.org>
+
+	PR fortran/82173
+	* gfortran.dg/pdt_bug26.f90: New test.
+
+2026-11-13  Jiawei  <jiawei@iscas.ac.cn>
+
+	* gcc.target/riscv/zbs-bext-3.c: New test.
+
+2026-11-13  Kael Andrew Franco  <kaelfandrew@gmail.com>
+
+	PR ipa/128491
+	* gcc.dg/pr128491.c: New test.
+
 2026-11-12  Andrew MacLeod  <amacleod@redhat.com>
 
 	PR tree-optimization/127915
diff --git a/libgcc/ChangeLog b/libgcc/ChangeLog
index d82793c..7760f33 100644
--- a/libgcc/ChangeLog
+++ b/libgcc/ChangeLog
@@ -1,3 +1,7 @@
+2026-11-13  LIU Hao  <lh_mouse@126.com>
+
+	* config/i386/cygwin.S: Fix a typo in `___chkstk`.
+
 2026-11-10  Pietro Monteiro  <pietro@sociotechnical.xyz>
 
 	* configure: Regenerate.
diff --git a/libstdc++-v3/ChangeLog b/libstdc++-v3/ChangeLog
index c53c1a2..e8eaf0a 100644
--- a/libstdc++-v3/ChangeLog
+++ b/libstdc++-v3/ChangeLog
@@ -1,3 +1,86 @@
+2026-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/algorithm: Add comment to #endif.
+	* include/std/numeric: Use __cpp_lib_parallel_algorithm feature
+	test macro instead of __cplusplus and _GLIBCXX_HOSTED.
+
+2026-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/bits/regex.h (basic_regex::assign(I, I, * flag_type)):
+	Tweak comment to use T instead of _T.
+
+2026-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* testsuite/20_util/specialized_algorithms/pstl/uninitialized_copy_move.cc:
+	Replace references to namespace __pstl with std.
+	* testsuite/25_algorithms/pstl/alg_merge/inplace_merge.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_if.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/copy_move.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/is_partitioned.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/partition_copy.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/remove.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/rotate_copy.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_modifying_operations/unique_copy_equal.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/find.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_end.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_first_of.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/find_if.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/nth_element.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/reverse_copy.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_nonmodifying/search_n.cc:
+	Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/is_heap.cc: Likewise.
+	* testsuite/25_algorithms/pstl/alg_sorting/partial_sort_copy.cc:
+	Likewise.
+	* testsuite/26_numerics/pstl/numeric_ops/adjacent_difference.cc:
+	Likewise.
+	* testsuite/26_numerics/pstl/numeric_ops/reduce.cc: Likewise.
+	* testsuite/util/pstl/test_utils.h: Likewise.
+
+2026-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	PR libstdc++/128548
+	* src/c++11/thread.cc (thread::join): Check for self-join.
+	* testsuite/30_threads/thread/members/128548.cc: New test.
+
+2026-11-13  Jonathan Wakely  <jwakely@redhat.com>
+
+	* include/std/type_traits (_GLIBCXX_HAS_NESTED_TYPE): Remove
+	macro.
+	* testsuite/20_util/reference_wrapper/typedefs-3.cc: Define
+	test traits without using _GLIBCXX_HAS_NESTED_TYPE.
+
+2026-11-13  Tomasz Kamiński  <tkaminsk@redhat.com>
+
+	* include/bits/stl_pair.h (std::get(const tuple<...>&)): Moved
+	from...
+	* include/std/tuple (std::get<_Int>): Move deleted overload for out
+	of bounds index to bits/stl_pair.h. Qualify remaining definitions.
+	* include/std/array (std::get<_Int>): Qualify definitions.
+	* include/std/complex (std::get<_Int>): Qualify definitions.
+
 2026-11-10  Jonathan Wakely  <jwakely@redhat.com>
 
 	* include/std/charconv (__to_chars_unsigned_type): Remove.