GCC Bugzilla – Attachment 35281 Details for
Bug 57032
[4.9/5/6 Regression]: internal compiler error: Max. number of generated reload insns per insn is achieved (90)
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
WIP patch (fixes "Q" constraint)
a.diff.txt (text/plain), 2.29 KB, created by
Uroš Bizjak
on 2015-04-09 19:48:35 UTC
(
hide
)
Description:
WIP patch (fixes "Q" constraint)
Filename:
MIME Type:
Creator:
Uroš Bizjak
Created:
2015-04-09 19:48:35 UTC
Size:
2.29 KB
patch
obsolete
>Index: alpha.c >=================================================================== >--- alpha.c (revision 221952) >+++ alpha.c (working copy) >@@ -10110,6 +10110,9 @@ > #undef TARGET_LEGITIMATE_ADDRESS_P > #define TARGET_LEGITIMATE_ADDRESS_P alpha_legitimate_address_p > >+#undef TARGET_LRA_P >+#define TARGET_LRA_P hook_bool_void_true >+ > #undef TARGET_CONDITIONAL_REGISTER_USAGE > #define TARGET_CONDITIONAL_REGISTER_USAGE alpha_conditional_register_usage > >Index: constraints.md >=================================================================== >--- constraints.md (revision 221952) >+++ constraints.md (working copy) >@@ -97,9 +97,12 @@ > && op == CONST0_RTX (mode)"))) > > ;; "Extra" constraints. >-(define_constraint "Q" >- "@internal A normal_memory_operand" >- (match_operand 0 "normal_memory_operand")) >+(define_memory_constraint "Q" >+ "@internal normal memory operand" >+ (and (match_code "mem") >+ (match_test "GET_CODE (XEXP (op, 0)) != AND") >+ (match_test "memory_address_addr_space_p >+ (GET_MODE (op), XEXP (op, 0), MEM_ADDR_SPACE (op))"))) > > (define_constraint "R" > "@internal A direct_call_operand" >Index: predicates.md >=================================================================== >--- predicates.md (revision 221952) >+++ predicates.md (working copy) >@@ -441,8 +441,7 @@ > ;; pessimizes things a tad. > > (define_special_predicate "aligned_memory_operand" >- (ior (match_test "op = resolve_reload_operand (op), 0") >- (match_code "mem")) >+ (match_code "mem") > { > rtx base; > int offset; >@@ -486,8 +485,7 @@ > ;; Similar, but return 1 if OP is a MEM which is not alignable. > > (define_special_predicate "unaligned_memory_operand" >- (ior (match_test "op = resolve_reload_operand (op), 0") >- (match_code "mem")) >+ (match_code "mem") > { > rtx base; > int offset; >@@ -549,14 +547,6 @@ > return false; > }) > >-;; Return 1 is OP is a memory location that is not a reference >-;; (using an AND) to an unaligned location. Take into account >-;; what reload will do. >-(define_special_predicate "normal_memory_operand" >- (ior (match_test "op = resolve_reload_operand (op), 0") >- (and (match_code "mem") >- (match_test "GET_CODE (XEXP (op, 0)) != AND")))) >- > ;; Returns 1 if OP is not an eliminable register. > ;; > ;; This exists to cure a pathological failure in the s8addq (et al) patterns,
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 57032
:
29914
| 35281 |
35282
|
35312