This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Ada] containers improvements


Tested on i686-linux, committed on trunk

The representation of the vector was changed, from a pointer to an
unconstrained array, to a pointer to a discriminated record with an array
component. The reason for the change is that the lower bound of the array
always fixed (for a vector container the value is always Index_Type'First), and
so allocating a dope vector for the internal array is unnecessary. Knowing that
the lower bound is fixed means the compiler can use a thin pointer instead of a
fat one, and ultimately this means that the vector implementation is more
efficient.

--
Make all Containers packages Remote_Types (unless they are already Pure).
This requires making this package Pure, which in turn requires making type
 Buckets_Access have an empty pool. This requires us to use a different type
 (Generic_Operations.Buckets_Allocation) for allocation, along with conversions
 to/from Buckets_Access, and that requires adding "all" to Buckets_Access.

Make all Containers packages Remote_Types (unless they are already Pure).

See gnat.dg/specs/with_containers.ads

2007-08-14  Bob Duff  <duff@adacore.com>

	* a-cihama.ads, a-cidlli.ads, a-chtgop.ads, a-chtgop.adb, a-cdlili.ads, 
	a-cihase.adb, a-cihase.ads, a-cohase.adb, a-cohase.ads, a-ciorma.ads, 
	a-coorma.ads, a-ciormu.ads, a-coormu.ads, a-ciorse.ads, a-cohama.ads, 
	a-cohata.ads, a-convec.adb, a-coinve.ads, a-coinve.adb, a-convec.ads,
	a-coorse.ads (Next): Applied pragma Inline.
	Make all Containers packages Remote_Types (unless they are already
	Pure).
	(Previous): applied pragma Inline
	(Elements_Type): is now a record instead of an array

Attachment: difs
Description: Text document


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]