On 11/20/2015 06:27 AM, James Greenhalgh wrote:
On Thu, Nov 12, 2015 at 11:32:36AM -0600, Evandro Menezes wrote:
On 11/12/2015 09:39 AM, Evandro Menezes wrote:
2015-11-12 Evandro Menezes <e.mene...@samsung.com>
[AArch64] Add attribute for compatibility with ARM pipeline models
gcc/
* config/aarch64/aarch64.md (predicated): Copy attribute from
"arm.md".
* config/arm/arm.md (predicated): Added description.
Please, commit if it's alright.
The AArch64 part of this is OK.
From 3fa6a2bca8f3d2992b4607cff0afcc2d9caa96f4 Mon Sep 17 00:00:00 2001
From: Evandro Menezes <e.mene...@samsung.com>
Date: Mon, 9 Nov 2015 17:11:16 -0600
Subject: [PATCH 1/2] [AArch64] Add attribute for compatibility with ARM
pipeline models
gcc/
* config/aarch64/aarch64.md (predicated): Copy attribute from "arm.md".
* config/arm/arm.md (predicated): Added description.
---
gcc/config/aarch64/aarch64.md | 4 ++++
gcc/config/arm/arm.md | 3 +++
2 files changed, 7 insertions(+)
diff --git a/gcc/config/aarch64/aarch64.md b/gcc/config/aarch64/aarch64.md
index 1586256..d46f837 100644
--- a/gcc/config/aarch64/aarch64.md
+++ b/gcc/config/aarch64/aarch64.md
@@ -195,6 +195,10 @@
;; 1 :=: yes
(define_attr "far_branch" "" (const_int 0))
+;; Strictly for compatibility with AArch32 in pipeline models, since AArch64 has
+;; no predicated insns.
+(define_attr "predicated" "yes,no" (const_string "no"))
+
;; -------------------------------------------------------------------
;; Pipeline descriptions and scheduling
;; -------------------------------------------------------------------
diff --git a/gcc/config/arm/arm.md b/gcc/config/arm/arm.md
index 73c3088..6bda491 100644
--- a/gcc/config/arm/arm.md
+++ b/gcc/config/arm/arm.md
@@ -105,6 +105,9 @@
(define_attr "fpu" "none,vfp"
(const (symbol_ref "arm_fpu_attr")))
+; Predicated means that the insn form is conditionally executed based on a
+; predicate. We default to 'no' because no Thumb patterns match this rule
+; and not all ARM insns do.
s/is conditionally executed/can be conditionally executed/ in the first
sentence. Otherwise, this looks OK to me but I can't approve the ARM part,
so you'll need to wait for a review from someone who can.
(define_attr "predicated" "yes,no" (const_string "no"))
; LENGTH of an instruction (in bytes)
--
2.1.0.243.g30d45f7
Actually, that would then be the existing description for the
"predicable" attribute. I think that this proposed description is
correct for the "predicated" attribute.
Thank you,
--
Evandro Menezes