Merge, from CGTUNE branch, a cleaned up version of r6742:

Another optimisation: allow tools to provide a final_tidy function
which they can use to mess with the final post-tree-built IR before it
is handed off to instruction selection.

In memcheck, use this to remove redundant calls to
MC_(helperc_value_check0_fail) et al.  Gives a 6% reduction in code
size for Memcheck on x86 and a smaller (3% ?) speedup.



git-svn-id: svn://svn.valgrind.org/valgrind/trunk@6787 a5019735-40e9-0310-863c-91ae7b9d1cf9
diff --git a/memcheck/mc_main.c b/memcheck/mc_main.c
index 4de8377..a553f92 100644
--- a/memcheck/mc_main.c
+++ b/memcheck/mc_main.c
@@ -4969,6 +4969,9 @@
                                    MC_(instrument),
                                    mc_fini);
 
+   VG_(needs_final_IR_tidy_pass)  ( MC_(final_tidy) );
+
+
    VG_(needs_core_errors)         ();
    VG_(needs_tool_errors)         (mc_eq_Error,
                                    mc_pp_Error,