Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
R
riscv-gcc-1
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
lvzhengyang
riscv-gcc-1
Commits
bdf13188
Commit
bdf13188
authored
Oct 10, 2014
by
Eric Botcazou
Committed by
Eric Botcazou
Oct 10, 2014
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
* lra-assigns.c (assign_by_spills): Error out on spill failure.
From-SVN: r216059
parent
a6c63173
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
13 additions
and
7 deletions
+13
-7
gcc/ChangeLog
+4
-0
gcc/lra-assigns.c
+9
-7
No files found.
gcc/ChangeLog
View file @
bdf13188
2014
-
10
-
10
Eric
Botcazou
<
ebotcazou
@
adacore
.
com
>
*
lra
-
assigns
.
c
(
assign_by_spills
):
Error
out
on
spill
failure
.
2014
-
10
-
09
Markus
Trippelsdorf
<
markus
@
trippelsdorf
.
de
>
*
pa
-
polymorphic
-
call
.
c
(
check_stmt_for_type_change
):
Move
gcc/lra-assigns.c
View file @
bdf13188
...
...
@@ -1286,10 +1286,9 @@ assign_by_spills (void)
break
;
if
(
iter
>
0
)
{
/* We did not assign hard regs to reload pseudos after two
iteration. It means something is wrong with asm insn
constraints. Report it. */
bool
asm_p
=
false
;
/* We did not assign hard regs to reload pseudos after two iterations.
Either it's an asm and something is wrong with the constraints, or
we have run out of spill registers; error out in either case. */
bitmap_head
failed_reload_insns
;
bitmap_initialize
(
&
failed_reload_insns
,
&
reg_obstack
);
...
...
@@ -1299,7 +1298,7 @@ assign_by_spills (void)
bitmap_ior_into
(
&
failed_reload_insns
,
&
lra_reg_info
[
regno
].
insn_bitmap
);
/* Assign an arbitrary hard register of regno class to
avoid further trouble with th
e asm insns
. */
avoid further trouble with th
is insn
. */
bitmap_clear_bit
(
&
all_spilled_pseudos
,
regno
);
assign_hard_regno
(
ira_class_hard_regs
[
regno_allocno_class_array
[
regno
]][
0
],
...
...
@@ -1310,7 +1309,6 @@ assign_by_spills (void)
insn
=
lra_insn_recog_data
[
u
]
->
insn
;
if
(
asm_noperands
(
PATTERN
(
insn
))
>=
0
)
{
asm_p
=
true
;
error_for_asm
(
insn
,
"%<asm%> operand has impossible constraints"
);
/* Avoid further trouble with this insn.
...
...
@@ -1331,8 +1329,12 @@ assign_by_spills (void)
lra_set_insn_deleted
(
insn
);
}
}
else
{
error
(
"unable to find a register to spill"
);
fatal_insn
(
"this is the insn:"
,
insn
);
}
}
lra_assert
(
asm_p
);
break
;
}
/* This is a very rare event. We can not assign a hard register
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment