Commit 7289b80c by Arnaud Charlet

[multiple changes]

2009-04-20  Eric Botcazou  <ebotcazou@adacore.com>

	* gnat_ugn.texi: Add documentation for -fno-ivopts.

2009-04-20  Ed Schonberg  <schonberg@adacore.com>

	* sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
	with_clause if it is the main unit.

From-SVN: r146390
parent c09a557e
2009-04-20 Eric Botcazou <ebotcazou@adacore.com>
* gnat_ugn.texi: Add documentation for -fno-ivopts.
2009-04-20 Ed Schonberg <schonberg@adacore.com>
* sem_ch10.adb (Analyze_Context): Do not analyze a unit in a
with_clause if it is the main unit.
2009-04-20 Thomas Quinot <quinot@adacore.com>
* sem_type.adb, ali.adb, erroutc.adb: Minor code reorganization
......@@ -3815,6 +3815,15 @@ if @option{-O2} is used.
Suppresses inlining of subprograms local to the unit and called once
from within it, which is enabled if @option{-O1} is used.
@item -fno-ivopts
@cindex @option{-fno-ivopts} (@command{gcc})
Suppresses high-level loop induction variable optimizations, which are
enabled if @option{-O1} is used. These optimizations are generally
profitable but, for some specific cases of loops with numerous uses
of the iteration variable that follow a common pattern, they may end
up destroying the regularity that could be exploited at a lower level
and thus producing inferior code.
@item -fno-strict-aliasing
@cindex @option{-fno-strict-aliasing} (@command{gcc})
Causes the compiler to avoid assumptions regarding non-aliasing
......@@ -774,7 +774,7 @@ package body Sem_Ch10 is
Version_Update (N, Lib_Unit);
end if;
-- Comment needed here ???
-- If this is a child unit, generate references to the parents.
if Nkind (Defining_Unit_Name (Specification (Unit_Node))) =
N_Defining_Program_Unit_Name
......@@ -1278,9 +1278,16 @@ package body Sem_Ch10 is
then
-- Skip analyzing with clause if no unit, nothing to do (this
-- happens for a with that references a non-existent unit)
-- Skip as well if this is a with_clause for the main unit, which
-- happens if a subunit has a useless with_clause on its parent.
if Present (Library_Unit (Item)) then
Analyze (Item);
if Library_Unit (Item) /= Cunit (Current_Sem_Unit) then
Analyze (Item);
else
Set_Entity (Name (Item), Cunit_Entity (Current_Sem_Unit));
end if;
end if;
if not Implicit_With (Item) then
......@@ -3111,7 +3118,7 @@ package body Sem_Ch10 is
if Is_Child_Spec (Lib_Unit) then
-- The unit also has implicit withs on its own parents
-- The unit also has implicit with_clauses on its own parents
if No (Context_Items (N)) then
Set_Context_Items (N, New_List);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment