This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, Pointer Bounds Checker 14/x] Passes [1/n] Expand interfaces


On 29 Oct 23:37, Jeff Law wrote:
> On 10/15/14 11:54, Ilya Enkovich wrote:
> >
> >Thanks for review!  I see no more patches not reviewed at all.  I see
> >4 more patches requiring approve before I can start a merge.
> >
> >Two of them are parts of split #14 (Passes): #14.3 (Helper functions)
> >and #14.16 (Reduce bounds lifetime)
> These are fine.  We can revisit LCM/anticipated in the future for
> the bounds lifetime reduction.
> 
> 
> >
> >There is also #32 (hooks for i386 target). It has concern about TBAA
> >which I believe is not a problem in my case because accesses using
> >different types are not mixed.
> OK.  That was the only pending issue with that patch, so it's good
> to go as well.
> 
> >
> >The final one is #33 (MPX ABI).  I still see fail on one benchmark but
> >I don't feel ICE in LRA should prevent patch from been committed.
> Assuming it doesn't fail unless you've turned on MPX, that seems
> reasonable at this stage.  Obviously we'd like to get that fixed
> during the general bugfixing phase.
> 
> As I discussed with Areg, I wanted this stuff to wait until the
> Darwin port had settled a bit after the recent problems.  While
> Darwin isn't happy yet, I think the remaining problems are
> manageable and isolated to the i686 code generator.  So if you could
> bootstrap Darwin 64 bit as a sanity test along with a final
> bootstrap & regression test on x86_64 linux, then I think we're good
> to go.
> 
> jeff
> 
> 

Hi,

I rebased patches on current trunk.  Bootstrap and check are clean on linux-x86_64.

Darwin bootstrap has few issues due to IPA ICF pass.  I also found my patches introduce an unused variable warning due to conditional code (under #ifdef ASM_OUTPUT_DEF) in varasm.  With IPA ICF disabled and this warning fixed Darwin 64 bootstrap is OK.

ARM cross build revealed another problem with conditional code.  Function immed_double_const was put under #if (TARGET_SUPPORTS_WIDE_INT == 0) some time ago but I missed it and didn't update my patches.  With this fixed cross build is also OK.

Below are required changes.  If these fixes are OK, I'm ready to commit whole series (I'm going to commit it as a single patch because didn't test each part separately).

Thanks,
Ilya
--
diff --git a/gcc/varasm.c b/gcc/varasm.c
index eb68fd3..40eeb5e 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -5522,7 +5522,6 @@ vec<alias_pair, va_gc> *alias_pairs;
 void
 do_assemble_alias (tree decl, tree target)
 {
-  tree orig_decl = decl;
   tree id;
 
   /* Emulated TLS had better not get this var.  */
@@ -5533,11 +5532,6 @@ do_assemble_alias (tree decl, tree target)
   if (TREE_ASM_WRITTEN (decl))
     return;
 
-  if (TREE_CODE (decl) == FUNCTION_DECL
-      && cgraph_node::get (decl)->instrumentation_clone
-      && cgraph_node::get (decl)->instrumented_version)
-    orig_decl = cgraph_node::get (decl)->instrumented_version->decl;
-
   id = DECL_ASSEMBLER_NAME (decl);
   ultimate_transparent_alias_target (&id);
 
@@ -5572,6 +5566,13 @@ do_assemble_alias (tree decl, tree target)
     }
 
 #ifdef ASM_OUTPUT_DEF
+  tree orig_decl = decl;
+
+  if (TREE_CODE (decl) == FUNCTION_DECL
+      && cgraph_node::get (decl)->instrumentation_clone
+      && cgraph_node::get (decl)->instrumented_version)
+    orig_decl = cgraph_node::get (decl)->instrumented_version->decl;
+
   /* Make name accessible from other files, if appropriate.  */
 
   if (TREE_PUBLIC (decl) || TREE_PUBLIC (orig_decl))
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 41c616d..04f677e 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -6133,7 +6133,10 @@ init_emit_once (void)
   for (mode = GET_CLASS_NARROWEST_MODE (MODE_POINTER_BOUNDS);
        mode != VOIDmode;
        mode = GET_MODE_WIDER_MODE (mode))
-    const_tiny_rtx[0][mode] = immed_double_const (0, 0, mode);
+    {
+      wide_int wi_zero = wi::zero (GET_MODE_PRECISION (mode));
+      const_tiny_rtx[0][mode] = immed_wide_int_const (wi_zero, mode);
+    }
 
   pc_rtx = gen_rtx_fmt_ (PC, VOIDmode);
   ret_rtx = gen_rtx_fmt_ (RETURN, VOIDmode);


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]