]> gcc.gnu.org Git - gcc.git/commitdiff
Revert "x86: Skip ISA check for always_inline in system headers"
authorH.J. Lu <hjl.tools@gmail.com>
Thu, 25 Mar 2021 13:57:37 +0000 (06:57 -0700)
committerH.J. Lu <hjl.tools@gmail.com>
Thu, 25 Mar 2021 13:57:37 +0000 (06:57 -0700)
This reverts commit 72982851d70dfbc547d83ed2bb45356b9ebe3ff0.

gcc/config/i386/i386.c
gcc/testsuite/gcc.target/i386/pr98209.c [deleted file]
gcc/testsuite/gcc.target/i386/pr99744-1.c [deleted file]
gcc/testsuite/gcc.target/i386/pr99744-2.c [deleted file]

index 1b4567e34bad19835dd5241f672785f42baf45da..7c41302c75b5a1905dec71d7153fa80a84008519 100644 (file)
@@ -578,29 +578,21 @@ ix86_can_inline_p (tree caller, tree callee)
        && lookup_attribute ("always_inline",
                            DECL_ATTRIBUTES (callee)));
 
-  /* NB: Skip ISA check for always_inline in system headers if caller
-     has target attribute.  */
-  bool skip_isa_check = (always_inline
-                        && caller_tree != target_option_default_node
-                        && DECL_IN_SYSTEM_HEADER (callee));
-
   cgraph_node *callee_node = cgraph_node::get (callee);
   /* Callee's isa options should be a subset of the caller's, i.e. a SSE4
      function can inline a SSE2 function but a SSE2 function can't inline
      a SSE4 function.  */
-  if (!skip_isa_check
-      && (((caller_opts->x_ix86_isa_flags & callee_opts->x_ix86_isa_flags)
-          != callee_opts->x_ix86_isa_flags)
-         || ((caller_opts->x_ix86_isa_flags2 & callee_opts->x_ix86_isa_flags2)
-             != callee_opts->x_ix86_isa_flags2)))
+  if (((caller_opts->x_ix86_isa_flags & callee_opts->x_ix86_isa_flags)
+       != callee_opts->x_ix86_isa_flags)
+      || ((caller_opts->x_ix86_isa_flags2 & callee_opts->x_ix86_isa_flags2)
+         != callee_opts->x_ix86_isa_flags2))
     ret = false;
 
   /* See if we have the same non-isa options.  */
-  else if (!skip_isa_check
-          && ((!always_inline
-               && caller_opts->x_target_flags != callee_opts->x_target_flags)
-              || ((caller_opts->x_target_flags & ~always_inline_safe_mask)
-                  != (callee_opts->x_target_flags & ~always_inline_safe_mask))))
+  else if ((!always_inline
+           && caller_opts->x_target_flags != callee_opts->x_target_flags)
+          || (caller_opts->x_target_flags & ~always_inline_safe_mask)
+              != (callee_opts->x_target_flags & ~always_inline_safe_mask))
     ret = false;
 
   /* See if arch, tune, etc. are the same.  */
diff --git a/gcc/testsuite/gcc.target/i386/pr98209.c b/gcc/testsuite/gcc.target/i386/pr98209.c
deleted file mode 100644 (file)
index 4566d4c..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* { dg-do run { target *-*-linux* } } */
-/* { dg-options "-O2 -D_FORTIFY_SOURCE=2" } */
-
-#include <stdio.h>
-
-extern int main(int argc, char** argv)
-  __attribute__ ((__target__ ("no-sse,no-mmx")));
-
-int main(int argc, char** argv)
-{
-  printf ("hello!\n");
-  return 0;
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr99744-1.c b/gcc/testsuite/gcc.target/i386/pr99744-1.c
deleted file mode 100644 (file)
index 9253592..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-/* { dg-do compile } */
-/* { dg-options "-O0" } */
-
-#include <x86intrin.h>
-
-extern unsigned long long int curr_deadline;
-extern void bar (void);
-
-__attribute__ ((target("general-regs-only")))
-void
-foo (void)
-{
-  if (__rdtsc () < curr_deadline)
-    return; 
-  bar ();
-}
diff --git a/gcc/testsuite/gcc.target/i386/pr99744-2.c b/gcc/testsuite/gcc.target/i386/pr99744-2.c
deleted file mode 100644 (file)
index 4bb2a6b..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-/* { dg-do compile { target { ! ia32 } } } */
-/* { dg-options "-O2" } */
-
-#include <x86intrin.h>
-
-extern __m128i x, y;
-
-__attribute__ ((target("general-regs-only")))
-void
-foo (void)
-{
-  x = _mm_move_epi64 (y); /* { dg-error "SSE register return with SSE disabled" } */
-}
This page took 0.105396 seconds and 5 git commands to generate.