You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by va...@apache.org on 2006/11/30 13:55:01 UTC
svn commit: r480913 [2/3] - in /harmony/enhanced/drlvm/trunk:
build/custom/msvc_2003/vmcore/ vm/em/src/ vm/gc_cc/src/
vm/gc_gen/src/common/ vm/include/open/ vm/interpreter/ vm/interpreter/src/
vm/jitrino/config/em64t/ vm/jitrino/config/ia32/ vm/jitrino...
Modified: harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/gc_gen/src/common/gc_for_vm.cpp Thu Nov 30 04:54:59 2006
@@ -35,18 +35,20 @@
unsigned int min_heap_size_bytes = 32 * MB;
unsigned int max_heap_size_bytes = 256 * MB;
-static size_t parse_size_string(const char* size_string)
+static size_t get_size_property(const char* name)
{
- size_t len = strlen(size_string);
+ char* size_string = get_property(name, VM_PROPERTIES);
+ size_t size = atol(size_string);
+ int sizeModifier = tolower(size_string[strlen(size_string) - 1]);
+ destroy_property_value(size_string);
+
size_t unit = 1;
- if (tolower(size_string[len - 1]) == 'k') {
- unit = 1024;
- } else if (tolower(size_string[len - 1]) == 'm') {
- unit = 1024 * 1024;
- } else if (tolower(size_string[len - 1]) == 'g') {
- unit = 1024 * 1024 * 1024;
+ switch (sizeModifier) {
+ case 'k': unit = 1024; break;
+ case 'm': unit = 1024 * 1024; break;
+ case 'g': unit = 1024 * 1024 * 1024;break;
}
- size_t size = atol(size_string);
+
size_t res = size * unit;
if (res / unit != size) {
/* overflow happened */
@@ -55,34 +57,13 @@
return res;
}
-static bool get_property_value_boolean(char* name)
-{
- const char* value = vm_get_property_value(name);
-
- return (strcmp("0", value) != 0
- && strcmp("off", value) != 0
- && strcmp("false", value) != 0);
-}
-
-static int get_property_value_int(char* name)
-{
- const char* value = vm_get_property_value(name);
- return (NULL == value) ? 0 : atoi(value);
-}
-
-static bool is_property_set(char* name)
-{
- const char* value = vm_get_property_value(name);
- return (NULL != value && 0 != value[0]);
-}
-
static void parse_configuration_properties()
{
unsigned int max_heap_size = HEAP_SIZE_DEFAULT;
unsigned int min_heap_size = min_heap_size_bytes;
- if (is_property_set("gc.mx")) {
- max_heap_size = parse_size_string(vm_get_property_value("gc.mx"));
+ if (is_property_set("gc.mx", VM_PROPERTIES) == 1) {
+ max_heap_size = get_size_property("gc.mx");
if (max_heap_size < min_heap_size)
max_heap_size = min_heap_size;
@@ -93,8 +74,8 @@
if (min_heap_size < min_heap_size_bytes) min_heap_size = min_heap_size_bytes;
}
- if (is_property_set("gc.ms")) {
- min_heap_size = parse_size_string(vm_get_property_value("gc.ms"));
+ if (is_property_set("gc.ms", VM_PROPERTIES) == 1) {
+ min_heap_size = get_size_property("gc.ms");
if (min_heap_size < min_heap_size_bytes)
min_heap_size = min_heap_size_bytes;
}
@@ -105,22 +86,13 @@
min_heap_size_bytes = min_heap_size;
max_heap_size_bytes = max_heap_size;
- if (is_property_set("gc.nos_size")) {
- NOS_SIZE = parse_size_string(vm_get_property_value("gc.nos_size"));
+ if (is_property_set("gc.nos_size", VM_PROPERTIES) == 1) {
+ NOS_SIZE = get_size_property("gc.nos_size");
}
- if (is_property_set("gc.num_collectors")) {
- unsigned int num = get_property_value_int("gc.num_collectors");
- NUM_COLLECTORS = (num==0)? NUM_COLLECTORS:num;
- }
-
- if (is_property_set("gc.gen_mode")) {
- NEED_BARRIER = get_property_value_boolean("gc.gen_mode");
- }
-
- if (is_property_set("gc.verify")) {
- GC_VERIFY = get_property_value_boolean("gc.verify");
- }
+ NUM_COLLECTORS = get_int_property("gc.num_collectors", NUM_COLLECTORS, VM_PROPERTIES);
+ NEED_BARRIER = get_boolean_property("gc.gen_mode", TRUE, VM_PROPERTIES);
+ GC_VERIFY = get_boolean_property("gc.verify", FALSE, VM_PROPERTIES);
return;
}
Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm.h Thu Nov 30 04:54:59 2006
@@ -686,37 +686,47 @@
// Free a string buffer returned by method_sig_get_string.
VMEXPORT void free_string_buffer(char *buffer);
-// Return the value of a global property, e.g. one set by the "-Dproperty=value"
-// command line argument.
-VMEXPORT const char *vm_get_property_value(const char *property_name);
-VMEXPORT void vm_properties_set_value(const char* name, const char* value);
-typedef void *PropertiesIteratorHandle;
+typedef enum {
+ VM_PROPERTIES = 0,
+ JAVA_PROPERTIES = 1
+} PropertyTable;
-// Create iterator for system properties.
-// All iterators created with this method call
-// must be destroyed with vm_properties_iterator_destroy
-VMEXPORT PropertiesIteratorHandle vm_properties_iterator_create();
+//Sets the property for table_number property table. NULL value is supported.
+VMEXPORT void set_property(const char* key, const char* value, PropertyTable table_number);
-// Destroy iterator created by vm_properties_iterator_create
-VMEXPORT void vm_properties_iterator_destroy(PropertiesIteratorHandle props_iter);
+//Returns the value of the property from table_number property table if it
+//has been set by set_property function. Otherwise returns NULL.
+VMEXPORT char* get_property(const char* key, PropertyTable table_number);
-// Advance iterator to a next property.
-// Return false if no more properties left to iterate
-VMEXPORT Boolean vm_properties_iterator_advance(PropertiesIteratorHandle props_iter);
+//Safety frees memory of value returned by get_property function.
+VMEXPORT void destroy_property_value(char* value);
-// Return a name of the current property
-VMEXPORT const char* vm_properties_get_name(PropertiesIteratorHandle props_iter);
+//Checks if the property is set. Return:
+// -1 if table_number is incorrect.
+// 1 if property is set in table_number property table.
+// 0 otherwise.
+VMEXPORT int is_property_set(const char* key, PropertyTable table_number);
-// Return a value of the current property
-VMEXPORT const char* vm_properties_get_string_value(PropertiesIteratorHandle props_iter);
+//Unsets the property in table_number property table.
+VMEXPORT void unset_property(const char* key, PropertyTable table_number);
-// Return the boolean value of the property
-VMEXPORT Boolean vm_get_property_value_boolean(const char* property, Boolean default_value);
+//Returns an array of keys from table_number properties table.
+VMEXPORT char** get_properties_keys(PropertyTable table_number);
-VMEXPORT Boolean vm_get_boolean_property_value_with_default(const char *property_name);
+//Returns an array of keys which start with specified prefix from table_number properties table.
+VMEXPORT char** get_properties_keys_staring_with(const char* prefix, PropertyTable table_number);
+//Safety frees array of keys memory which returned by get_properties_keys
+//or get_properties_keys_staring_with functions.
+VMEXPORT void destroy_properties_keys(char** keys);
+
+//Tries to interpret property value as Boolean and returns it. In case of failure returns default_value.
+VMEXPORT Boolean get_boolean_property(const char* property, Boolean default_value, PropertyTable table_number);
+
+//Tries to interpret property value as int and returns it. In case of failure returns default_value.
+VMEXPORT int get_int_property(const char *property_name, int default_value, PropertyTable table_number);
// end miscellaneous functions.
/////////////////////////////////////////////////////////////////
Modified: harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/include/open/vm_util.h Thu Nov 30 04:54:59 2006
@@ -76,13 +76,6 @@
void __stdcall vm_dump_object_and_return_ip(void *obj, void *eip);
#endif
-// Allows setting a boolean property on the command line.
-// Currently uses on/true/1 for true, and off/false/0 for false.
-VMEXPORT Boolean vm_get_boolean_property_value_with_default(const char *property_name);
-void check_vm_standard_property(const char *propertyName, const char *propertyValue);
-void print_vm_standard_properties();
-
-
class ExpandableMemBlock
{
public:
Modified: harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/interpreter/interpreter.emconf Thu Nov 30 04:54:59 2006
@@ -23,4 +23,4 @@
#system properties
-Djava.compiler=interpreter
--Dvm.use_interpreter=true
\ No newline at end of file
+-XDvm.use_interpreter=true
Modified: harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/interpreter/src/interp_exports.cpp Thu Nov 30 04:54:59 2006
@@ -128,8 +128,8 @@
interpreter->interpreter_ti_pop_frame = &interpreter_ti_pop_frame;
interpreter->stack_dump = &stack_dump;
-#ifdef _WIN32
- if (!vm_get_boolean_property_value_with_default("vm.assert_dialog"))
+#if defined (PLATFORM_NT) && defined (_DEBUG)
+ if (!get_boolean_property("vm.assert_dialog", false, VM_PROPERTIES))
{
disable_assert_dialogs();
}
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/client.emconf Thu Nov 30 04:54:59 2006
@@ -48,27 +48,27 @@
# Options to be passed to JIT
--Djit.JET_CLINIT.path=
--Djit.JET_DPGO.path=
+-XDjit.JET_CLINIT.path=
+-XDjit.JET_DPGO.path=
--Djit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CD_OPT.path.dce1=cg_dce
--Djit.CD_OPT.path.dce2=cg_dce
--Djit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CD_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CD_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CD_OPT.path.dce1=cg_dce
+-XDjit.CD_OPT.path.dce2=cg_dce
+-XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
--Djit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
--Djit.CD_OPT.arg.codegen.dce1.early=yes
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CD_OPT.arg.codegen.dce1.early=yes
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/jet.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
JET.file=jitrino
#JIT options
--Djit.JET.path=
+-XDjit.JET.path=
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/opt.emconf Thu Nov 30 04:54:59 2006
@@ -22,25 +22,25 @@
# Options to be passed to JIT
--Djit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CS_OPT.path.dce1=cg_dce
--Djit.CS_OPT.path.dce2=cg_dce
--Djit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CS_OPT.path.dce1=cg_dce
+-XDjit.CS_OPT.path.dce2=cg_dce
+-XDjit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CS_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
--Djit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
--Djit.CS_OPT.arg.codegen.dce1.early=yes
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CS_OPT.arg.codegen.dce1.early=yes
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server.emconf Thu Nov 30 04:54:59 2006
@@ -37,45 +37,45 @@
#options for JIT
--Djit.JET_CLINIT.path=
+-XDjit.JET_CLINIT.path=
--Djit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
--Djit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD1_OPT.path.dce1=cg_dce
--Djit.SD1_OPT.path.dce2=cg_dce
--Djit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD1_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD1_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
+-XDjit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD1_OPT.path.dce1=cg_dce
+-XDjit.SD1_OPT.path.dce2=cg_dce
+-XDjit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD1_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD1_OPT.path.bp_regalloc2=bp_regalloc
--Djit.SD1_OPT.arg.codegen.dce1.early=yes
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD1_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
--Djit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD2_OPT.path.dce1=dce
--Djit.SD2_OPT.path.dce2=dce
--Djit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD2_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD2_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD2_OPT.path.dce1=dce
+-XDjit.SD2_OPT.path.dce2=dce
+-XDjit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD2_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD2_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
--Djit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
--Djit.SD2_OPT.arg.optimizer.inline.connect_early=false
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
+-XDjit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
+-XDjit.SD2_OPT.arg.optimizer.inline.connect_early=false
--Djit.SD2_OPT.arg.codegen.dce1.early=yes
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD2_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/server_static.emconf Thu Nov 30 04:54:59 2006
@@ -22,24 +22,24 @@
# Options to be passed to JIT
--Djit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SS_OPT.path.dce1=cg_dce
--Djit.SS_OPT.path.dce2=cg_dce
--Djit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l-,early_prop-,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce-,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SS_OPT.path.dce1=cg_dce
+-XDjit.SS_OPT.path.dce2=cg_dce
+-XDjit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SS_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
--Djit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
--Djit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
+-XDjit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
--Djit.SS_OPT.arg.codegen.dce1.early=yes
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SS_OPT.arg.codegen.dce1.early=yes
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/em64t/ti.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
JET_TI.file=jitrino
#JIT options
--Djit.JET_TI.path=
+-XDjit.JET_TI.path=
#system properties
-Djava.compiler=jet ti
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/client.emconf Thu Nov 30 04:54:59 2006
@@ -48,27 +48,27 @@
# Options to be passed to JIT
--Djit.JET_CLINIT.path=
--Djit.JET_DPGO.path=
+-XDjit.JET_CLINIT.path=
+-XDjit.JET_DPGO.path=
--Djit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CD_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CD_OPT.path.dce1=cg_dce
--Djit.CD_OPT.path.dce2=cg_dce
--Djit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CD_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CD_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CD_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CD_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CD_OPT.path.dce1=cg_dce
+-XDjit.CD_OPT.path.dce2=cg_dce
+-XDjit.CD_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CD_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CD_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
--Djit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.filter=-
+-XDjit.CD_OPT.CD_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CD_OPT.arg.optimizer.inline.pipeline=CD_OPT_inliner_pipeline
--Djit.CD_OPT.arg.codegen.dce1.early=yes
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CD_OPT.arg.codegen.dce1.early=yes
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CD_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/jet.emconf Thu Nov 30 04:54:59 2006
@@ -21,7 +21,7 @@
# Options to be passed to JIT
--Djit.JET.path=
+-XDjit.JET.path=
#system properties
-Djava.compiler=jet
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/opt.emconf Thu Nov 30 04:54:59 2006
@@ -22,28 +22,28 @@
# Options to be passed to JIT
--Djit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.CS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
--Djit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.CS_OPT.path.dce1=cg_dce
--Djit.CS_OPT.path.dce2=cg_dce
--Djit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.CS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.CS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.CS_OPT.path.optimizer=ssa,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,memopt,simplify,dce,uce,lower,dessa,statprof,markglobals
+-XDjit.CS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.CS_OPT.path.dce1=cg_dce
+-XDjit.CS_OPT.path.dce2=cg_dce
+-XDjit.CS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.CS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.CS_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
--Djit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
--Djit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.filter=-
+-XDjit.CS_OPT.CS_OPT_inliner_pipeline.path=ssa,devirt
+-XDjit.CS_OPT.arg.optimizer.inline.pipeline=CS_OPT_inliner_pipeline
--Djit.CS_OPT.arg.codegen.dce1.early=yes
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.CS_OPT.arg.codegen.dce1.early=yes
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.CS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
-#-Djit.CS_OPT.arg.log.irdump.file=log/%jit%/%log%/%seqnb%_%class%.%method%.log
-#-Djit.CS_OPT.arg.log=ct,ir,irdump,all
+#-XDjit.CS_OPT.arg.log.irdump.file=log/%jit%/%log%/%seqnb%_%class%.%method%.log
+#-XDjit.CS_OPT.arg.log=ct,ir,irdump,all
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server.emconf Thu Nov 30 04:54:59 2006
@@ -37,58 +37,58 @@
#options for JIT
--Djit.JET_CLINIT.path=
+-XDjit.JET_CLINIT.path=
--Djit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SD1_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
--Djit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD1_OPT.path.dce1=cg_dce
--Djit.SD1_OPT.path.dce2=cg_dce
--Djit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD1_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD1_OPT.path.bp_regalloc2=bp_regalloc
-
--Djit.SD1_OPT.arg.codegen.dce1.early=yes
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
-
--Djit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
-
--Djit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SD2_OPT.path.dce1=cg_dce
--Djit.SD2_OPT.path.dce2=cg_dce
--Djit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SD2_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SD2_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SD1_OPT.path.optimizer=ssa,simplify,dce,uce,edge_instrument,dessa,statprof,markglobals
+-XDjit.SD1_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD1_OPT.path.dce1=cg_dce
+-XDjit.SD1_OPT.path.dce2=cg_dce
+-XDjit.SD1_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD1_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD1_OPT.path.bp_regalloc2=bp_regalloc
+
+-XDjit.SD1_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD1_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+
+-XDjit.SD2_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+
+-XDjit.SD2_OPT.path.optimizer=ssa,simplify,dce,uce,edge_annotate,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,inline_helpers,purge,simplify,uce,dce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SD2_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SD2_OPT.path.dce1=cg_dce
+-XDjit.SD2_OPT.path.dce2=cg_dce
+-XDjit.SD2_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SD2_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SD2_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
--Djit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
--Djit.SD2_OPT.arg.optimizer.inline.connect_early=false
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,edge_annotate,devirt
+-XDjit.SD2_OPT.arg.optimizer.inline.pipeline=SD2_OPT_inliner_pipeline
+-XDjit.SD2_OPT.arg.optimizer.inline.connect_early=false
#helper inliner configuration
--Djit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=-
--Djit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
--Djit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline
-
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_cc/GCHelper
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc
--Djit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.filter=-
+-XDjit.SD2_OPT.SD2_OPT_helper_inliner_pipeline.path=ssa
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.pipeline=SD2_OPT_helper_inliner_pipeline
+
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj=on
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_className=org/apache/harmony/drlvm/gc_cc/GCHelper
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_methodName=alloc
+-XDjit.SD2_OPT.arg.optimizer.inline_helpers.newObj_hotnessPercent=1
--Djit.SD2_OPT.arg.codegen.dce1.early=yes
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SD2_OPT.arg.codegen.dce1.early=yes
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SD2_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
-Djava.compiler=server
-#GC properties
+#GC magics support
-Dvm.components.gc_cc.startupclass=org.apache.harmony.drlvm.gc_cc.GCHelper
-Dvm.components.gc_cc.classpath=gc_cc.jar
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/server_static.emconf Thu Nov 30 04:54:59 2006
@@ -22,24 +22,24 @@
# Options to be passed to JIT
--Djit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
+-XDjit.SS_OPT.path=opt_init,translator,optimizer,hir2lir,codegen
--Djit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
--Djit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
--Djit.SS_OPT.path.dce1=cg_dce
--Djit.SS_OPT.path.dce2=cg_dce
--Djit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
--Djit.SS_OPT.path.bp_regalloc1=bp_regalloc
--Djit.SS_OPT.path.bp_regalloc2=bp_regalloc
+-XDjit.SS_OPT.path.optimizer=ssa,simplify,dce,uce,statprof,devirt,inline,uce,purge,simplify,dce,uce,lazyexc,hvn,dce,uce,dessa,statprof,peel,ssa,hvn,simplify,dce,uce,lower,dce,uce,memopt,reassoc,dce,uce,hvn,dce,uce,abcd,dce,uce,gcm,dessa,statprof,markglobals
+-XDjit.SS_OPT.path.codegen=lock_method,bbp,gcpoints,cafl,dce1,i8l,early_prop,itrace-,native,constraints,dce2,regalloc,spillgen,layout,copy,rce+,stack,break-,iprof-,emitter!,si_insts,gcmap,info,unlock_method
+-XDjit.SS_OPT.path.dce1=cg_dce
+-XDjit.SS_OPT.path.dce2=cg_dce
+-XDjit.SS_OPT.path.regalloc=bp_regalloc1,bp_regalloc2
+-XDjit.SS_OPT.path.bp_regalloc1=bp_regalloc
+-XDjit.SS_OPT.path.bp_regalloc2=bp_regalloc
#inliner configuration
--Djit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
--Djit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
--Djit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.filter=-
+-XDjit.SS_OPT.SS_OPT_inliner_pipeline.path=ssa,simplify,dce,uce,statprof,devirt
+-XDjit.SS_OPT.arg.optimizer.inline.pipeline=SS_OPT_inliner_pipeline
--Djit.SS_OPT.arg.codegen.dce1.early=yes
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
--Djit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
+-XDjit.SS_OPT.arg.codegen.dce1.early=yes
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc1.regs=ALL_GP
+-XDjit.SS_OPT.arg.codegen.regalloc.bp_regalloc2.regs=ALL_XMM
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/config/ia32/ti.emconf Thu Nov 30 04:54:59 2006
@@ -20,7 +20,7 @@
JET_TI.file=jitrino
#JIT options
--Djit.JET_TI.path=
+-XDjit.JET_TI.path=
#system properties
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/jet/compiler.cpp Thu Nov 30 04:54:59 2006
@@ -1370,7 +1370,7 @@
VTBL_BASE = (const char*)vm_get_vtable_base();
NULL_REF = g_refs_squeeze ? OBJ_BASE : NULL;
- g_jvmtiMode = vm_get_property_value_boolean("vm.jvmti.enabled", false);
+ g_jvmtiMode = (bool)get_boolean_property("vm.jvmti.enabled", false, VM_PROPERTIES);
rt_helper_monitor_enter =
(char*)vm_get_rt_support_addr(VM_RT_MONITOR_ENTER);
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/main/PMF.cpp Thu Nov 30 04:54:59 2006
@@ -1352,20 +1352,18 @@
void PMF::processVMProperties ()
{
- PropertiesIteratorHandle ph = vm_properties_iterator_create();
- for (;;)
- {
- const char* key = vm_properties_get_name(ph);
- if (strncmp("jit.", key, 4) == 0)
+ char** keys = get_properties_keys(VM_PROPERTIES);
+ int i = 0;
+ while (keys[i] != NULL) {
+ if (strncmp("jit.", keys[i], 4) == 0)
{
- const char* value = vm_properties_get_string_value(ph);
- processCmd(key+4, value);
+ char* value = get_property(keys[i], VM_PROPERTIES);
+ processCmd(keys[i] + 4, value);
+ destroy_property_value(value);
}
-
- if (!vm_properties_iterator_advance(ph))
- break;
+ i++;
}
- vm_properties_iterator_destroy(ph);
+ destroy_properties_keys(keys);
}
Modified: harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/jitrino/src/vm/drl/DrlJITInterface.cpp Thu Nov 30 04:54:59 2006
@@ -84,13 +84,10 @@
initMessage = initMessage + mode + " compiler mode";
INFO(initMessage.c_str());
Jitrino::Init(jit, name);
-#ifndef PLATFORM_POSIX
- //
- // Suppress dialog boxes for regression runs.
- //
-#ifdef _DEBUG
- if (!vm_get_boolean_property_value_with_default("vm.assert_dialog")) {
+#if defined (PLATFORM_NT) && defined (_DEBUG)
+ if (!get_boolean_property("vm.assert_dialog", false, VM_PROPERTIES))
+ {
_CrtSetReportMode(_CRT_ASSERT, _CRTDBG_MODE_FILE);
_CrtSetReportFile(_CRT_ASSERT, _CRTDBG_FILE_STDOUT);
_CrtSetReportMode(_CRT_ERROR, _CRTDBG_MODE_FILE);
@@ -99,7 +96,6 @@
_CrtSetReportFile(_CRT_WARN, _CRTDBG_FILE_STDOUT);
_set_error_mode(_OUT_TO_STDERR);
}
-#endif
#endif
#ifdef USE_FAST_PATH
Modified: harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/port/src/lil/ipf/pim/m2n_ipf.cpp Thu Nov 30 04:54:59 2006
@@ -32,7 +32,6 @@
#include "open/types.h"
#include "open/vm_util.h"
#include "stub_code_utils.h"
-#include "open/vm_util.h" // For vm_get_boolean_property_value_with_default
#include "interpreter.h"
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/classloader.h Thu Nov 30 04:54:59 2006
@@ -400,7 +400,7 @@
const String* class_name, bool* not_found);
Class* LoadFromJarFile( JarFile* jar_file,
const char* class_name_in_jar, const String* class_name, bool* not_found);
- void SetClasspathFromProperty(const char* prop_string, apr_pool_t *tmp_pool);
+ void SetClasspathFromString(char* prop_string, apr_pool_t *tmp_pool);
void SetClasspathFromJarFile(JarFile *jar, apr_pool_t *tmp_pool);
BCPElements m_BCPElements;
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/environment.h Thu Nov 30 04:54:59 2006
@@ -45,7 +45,6 @@
apr_pool_t* mem_pool; // memory pool
BootstrapClassLoader* bootstrap_class_loader;
UserDefinedClassLoader* system_class_loader;
- Properties* properties;
DebugUtilsTI* TI;
NSOTableItem* nsoTable;
void* portLib; // Classlib's port library
@@ -262,9 +261,19 @@
return ready_for_exceptions;
}
+ Properties* JavaProperties() {
+ return m_java_properties;
+ }
+
+ Properties* VmProperties() {
+ return m_vm_properties;
+ }
+
private:
bool bootstrapping;
bool ready_for_exceptions;
+ Properties* m_java_properties;
+ Properties* m_vm_properties;
};
#endif // _ENVIRONMENT_H
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/init.h Thu Nov 30 04:54:59 2006
@@ -14,11 +14,6 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/**
- * @author Euguene Ostrovsky
- * @version $Revision: 1.1.2.1.4.6 $
- */
-
#ifndef _INIT_H
#define _INIT_H
@@ -37,5 +32,6 @@
void parse_vm_arguments(Global_Env *p_env);
void parse_jit_arguments(JavaVMInitArgs* vm_arguments);
void print_generic_help();
+void initialize_properties(Global_Env *p_env);
#endif //_INIT_H
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/jarfile_util.h Thu Nov 30 04:54:59 2006
@@ -68,12 +68,7 @@
}
// get attribute of manifest
Properties *prop = manifest->GetMainProperties();
- // search manifest attribute
- Prop_String *value = (Prop_String*)prop->get(manifest_attr);
- if(!value) {
- return NULL;
- }
- return (const char*)value->value;
+ return prop->get(manifest_attr);
} // archive_get_manifest_attr
inline const char* archive_get_main_class_name(JarFile *jarfl)
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/include/properties.h Thu Nov 30 04:54:59 2006
@@ -14,493 +14,33 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
-/**
- * @author Intel, Alexey V. Varlamov, Gregory Shimansky
- * @version $Revision: 1.1.2.1.4.6 $
- */
-
-
#ifndef _VM_PROPERTIES_H
#define _VM_PROPERTIES_H
-#include "platform.h"
-#include "environment.h"
-#include <string.h>
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
-#include "tl/memory_pool.h"
-#endif
-
-/***************************************************************************************/
-class Prop_Value
-{
-public:
- virtual ~Prop_Value(){}
-
- virtual Prop_Value* clone() = 0; /*Clone this Prop_Value*/
-
- virtual void print() = 0;
-
- virtual const char* as_string() { return NULL; }
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
-public:
- void *operator new(size_t sz, tl::MemoryPool& m) {
- return m.alloc(sz);
- }
- void operator delete(void *obj, tl::MemoryPool& m){
- //do nothing
- };
- void *operator new(size_t sz) {
- return m_malloc(sz);
- }
- void operator delete(void *obj){
- m_free(obj);
- };
- virtual Prop_Value* clone(tl::MemoryPool& m) = 0;
-#endif
-};
-
-class Prop_String: public Prop_Value
-{
-public:
- Prop_String()
- {
- value = NULL;
- }
-
- Prop_String(char* v) /*Do not clone v*/
- {
- value = v;
- }
- ~Prop_String()
- {
- if(value)
- STD_FREE(value);
- }
- Prop_Value* clone()
- {
- return (new Prop_String(strdup((char*)value))); /*use strdup() to clone the value*/
- }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
- Prop_Value* clone(tl::MemoryPool& m)
- {
- return (new (m) Prop_String(strdup((char*)value))); /*use strdup() to clone the value*/
- }
-#endif
- void print()
- {
- printf("%s", value);
- }
- const char* as_string()
- {
- return value;
- }
-public:
- char *value;
-};
-
-/***************************************************************************************/
-
-class Prop_uLong: public Prop_Value
-{
-public:
- Prop_uLong()
- {
- value = 0;
- }
- Prop_uLong(unsigned long v)
- {
- value = v;
- }
- ~Prop_uLong()
- {
- }
- Prop_Value* clone()
- {
- return (new Prop_uLong(((unsigned long)value)));
- }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
- Prop_Value* clone(tl::MemoryPool& m)
- {
- return (new (m) Prop_uLong(((unsigned long)value)));
- }
-#endif
- void print()
- {
- printf("%lu", ((unsigned long)value));
- }
-public:
- unsigned long value;
-};
-
-
-/***************************************************************************************/
-struct Prop_entry
-{
- char *key;
- Prop_Value *value; /*value can be Prop_Sting,Prop_Properties,etc.*/
- struct Prop_entry *next;
- int compareTo(const char *akey)
- {
- return strcmp(akey, key);
- }
- void replace(Prop_entry *e)
- {
- if(value)delete value;
- value = e->value->clone(); /*clone e's value*/
- }
-public:
- Prop_entry()
- {
- key = NULL;
- value = NULL;
- next = NULL;
- }
- ~Prop_entry()
- {
- if(key) STD_FREE(key);
- if(value)delete value;
- if(next)delete next;
- }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
-public:
- void *operator new(size_t sz, tl::MemoryPool& m) {
- return m.alloc(sz);
- }
- void operator delete(void *obj, tl::MemoryPool& m){
- //do nothing
- };
- void *operator new(size_t sz) {
- return m_malloc(sz);
- }
- void operator delete(void *obj){
- m_free(obj);
- };
-#endif
-};
-
-
-/**************** The following is Properties *********************/
+#include <apr_hash.h>
+#include <apr_pools.h>
+#include <apr_thread_rwlock.h>
class Properties
{
-
public:
- class Iterator
- {
- private:
- Properties *prop;
- Prop_entry *current;
- int idx;
- Iterator(Properties *prop_) /*Couldn't new instances except Properties*/
- {
- prop = prop_;
- }
- public:
- Prop_entry *currentEntry() const {return current;}
- void reset()
- {
- current = NULL;
- idx = 0;
- }
- const Prop_entry* next()
- {
- if(current && current->next)
- return current = current->next;
- int i = current? idx+1 : idx;
- for(; i < prop->BUCKET_SIZE; i++)
- if(prop->bucket[i])
- break;
- if(i == prop->BUCKET_SIZE) {
- current = NULL;
- } else {
- current = prop->bucket[i];
- }
- idx = i;
- return current;
- }
- friend class Properties;
- }; //end of class Iterator
-
- friend class Properties::Iterator;
-public:
- Properties()
- {
- BUCKET_SIZE = 11; //wgs: is it reasonable?
- init(BUCKET_SIZE);
- }
- Properties(long size_)
- {
- BUCKET_SIZE = size_;
- init(BUCKET_SIZE);
- }
- ~Properties(){
- delete iterator;
- clear();
- STD_FREE(bucket);
- }
- Iterator *getIterator(){
- iterator->reset();
- return iterator;
- }
- Iterator* getNewIterator()
- {
- Iterator* iter = new Iterator(this);
- iter->reset();
- return iter;
- }
- void destroyIterator(Iterator* it)
- {
- assert(it!=iterator);
- assert(it->prop == this);
- delete it;
- }
- void add(const char* k, Prop_Value* v); /*Caller delete k and v*/
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
- void add(const char* k, Prop_Value* v, tl::MemoryPool& m);
-#endif
- void add(Prop_entry* e); /*Caller can not delete e*/
- void add(const char *line);
- inline void clear();
- Properties* clone();
- Prop_Value* get(const char* key);
- Prop_entry* get_entry(const char* key);
- void print();
- bool contains_key(const char* key);
-
+ Properties();
+ ~Properties() {
+ apr_pool_destroy(local_ht_pool);
+ }
+ void set(const char * key, const char * value);
+ char* get(const char * key);
+ void destroy(char* value);
+ bool is_set(const char * key);
+ void unset(const char * key);
+ char** get_keys();
+ char** get_keys_staring_with(const char* prefix);
+ void destroy(char** keys);
private:
- Prop_entry** bucket;
- int index_of(const char*key);
- Iterator *iterator;
- long BUCKET_SIZE;
- void init(long size_){
- bucket = (Prop_entry**)STD_CALLOC(sizeof(Prop_entry*), size_);
- iterator = new Iterator(this);
- }
-};
-
-typedef struct _properties* PropertiesHandle;
-
-VMEXPORT const char* properties_get_string_property(PropertiesHandle prop, const char* key);
-VMEXPORT void properties_set_string_property(PropertiesHandle ph, const char* key, const char* value);
-VMEXPORT PropertiesIteratorHandle properties_iterator_create(PropertiesHandle ph);
-VMEXPORT void properties_iterator_destroy(PropertiesHandle ph, PropertiesIteratorHandle pih);
-VMEXPORT Boolean properties_iterator_advance(PropertiesIteratorHandle pih);
-VMEXPORT const char* properties_get_name(PropertiesIteratorHandle pih);
-VMEXPORT const char* properties_get_string_value(PropertiesIteratorHandle pih);
-
-inline int Properties::index_of(const char *key)
-{
- unsigned int hash = 0;
- const char *end = key - 1;
- while(*(++end));
- for (; key < end; key += 3)
- hash = hash * 31 + *key;
- return hash % BUCKET_SIZE;
-}
-
-inline void Properties::add(const char* k,Prop_Value* v)
-{
- Prop_entry* e = new Prop_entry();
-#ifdef CLONE_ENTRY_WHEN_ADD
- e->key = strdup(k); /*caller can delete k*/
- e->value = v->clone(); /*caller can delete v*/
-#else
- e->key = (char*)k;
- e->value = v;
-#endif
- add(e); /*e will be invalid*/
-}
-
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
-inline void Properties::add(const char* k,Prop_Value* v, tl::MemoryPool& m)
-{
- Prop_entry* e = new (m) Prop_entry();
- e->key = strdup(k); /*caller can delete k*/
- e->value = v->clone(m); /*caller can delete v*/
- add(e); /*e will be invalid*/
-}
-#endif
-
-inline char* unquote(char *str)
-{
- const char *tokens = " \t\n\r\'\"";
- size_t i = strspn(str, tokens);
- str += i;
- char *p = str + strlen(str) - 1;
- while(strchr(tokens, *p) && p >= str)
- *(p--) = '\0';
- return str;
-}
-
-inline void Properties::add(const char *line)
-{
- // Ignore the line if it starts with #
- if (line[0]=='#') return;
- char *src = strdup(line);
- char *tok = strchr(src, '=');
- if(tok)
- {
- *tok = '\0';
- Prop_entry *e = new Prop_entry();
- e->key = strdup(unquote(src));
- e->value = new Prop_String(strdup(unquote(tok + 1)));
- if((e->key[0] == '\0') ) // esostrov: properties may have emply string values || (((Prop_String*)e->value)->value[0] == '\0'))
- delete e;
- else
- add(e);
- }
- STD_FREE(src);
-}
-
-inline void Properties::print()
-{
- int i = 0;
- for(i = 0; i < BUCKET_SIZE; i++)
- if(bucket[i]){
- Prop_entry *e = bucket[i];
- while(e)
- {
- printf("%s=", e->key);
- e->value->print();
- printf("\n");
- e = e->next;
- }
- }
-}
-
-inline void Properties::clear()
-{
- for(int i = 0; i < BUCKET_SIZE; i++)
- if(bucket[i])
- {
- delete bucket[i];
- bucket[i]=NULL;
- }
-}
-
-inline Properties* Properties::clone()
-{
- Properties* cloned_p = new Properties(BUCKET_SIZE);
- for(int i = 0; i < BUCKET_SIZE; i++)
- if(bucket[i])
- {
- Prop_entry *itr = bucket[i];
- while(itr)
- {
- Prop_entry *newe = new Prop_entry();
- newe->key = strdup(itr->key);
- newe->value = itr->value->clone();
- cloned_p->add(newe); /*Can NOT delete newe*/
- itr = itr->next;
- }
- }
- return cloned_p;
-
-}
-
-inline Prop_Value* Properties::get(const char* key)
-{
- int idx = index_of(key);
- if(bucket[idx] == NULL)
- return NULL;
-
- Prop_entry *itr = bucket[idx];
- while(itr)
- {
- int cmp = itr->compareTo(key);
- if(cmp > 0)
- return NULL;
- if(cmp == 0)
- return itr->value;
- itr = itr->next;
- }
- return NULL;
-}
-
-inline Prop_entry* Properties::get_entry(const char* key)
-{
- int idx = index_of(key);
- if(bucket[idx] == NULL)
- return NULL;
-
- Prop_entry *itr = bucket[idx];
- while(itr)
- {
- int cmp = itr->compareTo(key);
- if(cmp > 0)
- return NULL;
- if(cmp == 0)
- return itr;
- itr = itr->next;
- }
- return NULL;
-}
-
-inline bool Properties::contains_key(const char* key)
-{
- int idx = index_of(key);
- if(bucket[idx] == NULL)
- return false;
-
- Prop_entry *itr = bucket[idx];
- while(itr)
- {
- int cmp = itr->compareTo(key);
- if(cmp > 0)
- return false;
- if(cmp == 0)
- return true;
- itr = itr->next;
- }
- return false;
-}
-
-
-/***************************************************************************************/
-
-class Prop_Properties: public Prop_Value
-{
-public:
- Prop_Properties()
- {
- value = NULL;
- }
- Prop_Properties(Properties* v)
- {
- value = v;
- }
- ~Prop_Properties()
- {
- if(value)
- delete value;
- }
- Prop_Value* clone()
- {
- return (new Prop_Properties(value->clone()));
- }
-#ifdef USE_MEM_MANAGER_FOR_ALLOCATION
- Prop_Value* clone(tl::MemoryPool& m)
- {
- return (new (m) Prop_Properties(value->clone()));
- }
-#endif
-
- void print()
- {
- value->print();
- }
-public:
- Properties* value;
+ apr_pool_t* local_ht_pool;
+ apr_hash_t* hashtables_array;
+ apr_thread_rwlock_t* rwlock_array;
};
-
-void initialize_properties(Global_Env *p_env, Properties &prop);
-void add_to_properties(Properties& prop, const char* line);
-VMEXPORT void add_pair_to_properties(Properties& prop, const char* key, const char* value);
-void post_initialize_ee_dlls(PropertiesHandle ph);
-
-
#endif // _VM_PROPERTIES_H
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/C_Interface.cpp Thu Nov 30 04:54:59 2006
@@ -2383,37 +2383,6 @@
}
}
-
-const char *vm_get_property_value(const char *property_name)
-{
- assert(property_name);
- PropertiesHandle props = (PropertiesHandle)VM_Global_State::loader_env->properties;
- const char *result = properties_get_string_property(props, property_name);
- if (result == NULL)
- result = "";
- return result;
-}
-
-Boolean vm_get_property_value_boolean(const char *property_name, Boolean default_value)
-{
- assert(property_name);
- PropertiesHandle props = (PropertiesHandle)VM_Global_State::loader_env->properties;
- const char *value = properties_get_string_property(props, property_name);
-
- // fall back to provided default if the property is not set
- if (NULL == value || '\0' == value[0]) return default_value;
-
- // check the common negative strings
- if (0 == strcmp("no", value)
- || 0 == strcmp("off", value)
- || 0 == strcmp("false", value)
- || 0 == strcmp("0", value)) return FALSE;
-
- // and treat all other values as positive
- return TRUE;
-}
-
-
int vm_max_fast_instanceof_depth()
{
return MAX_FAST_INSTOF_DEPTH;
@@ -2627,41 +2596,161 @@
return CC_Vm;
} //vm_managed_calling_convention
+void set_property(const char* key, const char* value, PropertyTable table_number)
+{
+ assert(key);
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ VM_Global_State::loader_env->JavaProperties()->set(key, value);
+ break;
+ case VM_PROPERTIES:
+ VM_Global_State::loader_env->VmProperties()->set(key, value);
+ break;
+ default:
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
+}
+char* get_property(const char* key, PropertyTable table_number)
+{
+ assert(key);
+ char* value;
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ value = VM_Global_State::loader_env->JavaProperties()->get(key);
+ break;
+ case VM_PROPERTIES:
+ value = VM_Global_State::loader_env->VmProperties()->get(key);
+ break;
+ default:
+ value = NULL;
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
+ return value;
+}
-void vm_properties_set_value(const char* name, const char* value)
+void destroy_property_value(char* value)
{
- PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
- properties_set_string_property(ph, name, value);
+ if (value)
+ {
+ //FIXME which properties?
+ VM_Global_State::loader_env->JavaProperties()->destroy(value);
+ }
}
-// Create iterator for system properties.
-// All iterators created with this method call
-// must be destroyed with vm_properties_iterator_destroy
-PropertiesIteratorHandle vm_properties_iterator_create() {
- PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
- return properties_iterator_create(ph);
+int is_property_set(const char* key, PropertyTable table_number)
+{
+ int value;
+ assert(key);
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ value = VM_Global_State::loader_env->JavaProperties()->is_set(key) ? 1 : 0;
+ break;
+ case VM_PROPERTIES:
+ value = VM_Global_State::loader_env->VmProperties()->is_set(key) ? 1 : 0;
+ break;
+ default:
+ value = -1;
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
+ return value;
}
-// Destroy iterator created by vm_properties_iterator_create
-void vm_properties_iterator_destroy(PropertiesIteratorHandle props_iter) {
- PropertiesHandle ph = (PropertiesHandle)VM_Global_State::loader_env->properties;
- properties_iterator_destroy(ph, props_iter);
+void unset_property(const char* key, PropertyTable table_number)
+{
+ assert(key);
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ VM_Global_State::loader_env->JavaProperties()->unset(key);
+ break;
+ case VM_PROPERTIES:
+ VM_Global_State::loader_env->VmProperties()->unset(key);
+ break;
+ default:
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
}
-// Advance iterator to a next property.
-// Return false if no more properties left to iterate
-Boolean vm_properties_iterator_advance(PropertiesIteratorHandle props_iter) {
- return properties_iterator_advance(props_iter);
+char** get_properties_keys(PropertyTable table_number)
+{
+ char** value;
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ value = VM_Global_State::loader_env->JavaProperties()->get_keys();
+ break;
+ case VM_PROPERTIES:
+ value = VM_Global_State::loader_env->VmProperties()->get_keys();
+ break;
+ default:
+ value = NULL;
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
+ return value;
}
-// Return a name of the current property
-const char* vm_properties_get_name(PropertiesIteratorHandle props_iter) {
- return properties_get_name(props_iter);
+char** get_properties_keys_staring_with(const char* prefix, PropertyTable table_number)
+{
+ assert(prefix);
+ char** value;
+ switch(table_number) {
+ case JAVA_PROPERTIES:
+ value = VM_Global_State::loader_env->JavaProperties()->get_keys_staring_with(prefix);
+ break;
+ case VM_PROPERTIES:
+ value = VM_Global_State::loader_env->VmProperties()->get_keys_staring_with(prefix);
+ break;
+ default:
+ value = NULL;
+ ASSERT(0, "Unknown property table: " << table_number);
+ }
+ return value;
+}
+void destroy_properties_keys(char** keys)
+{
+ if (keys)
+ {
+ //FIXME which properties?
+ VM_Global_State::loader_env->JavaProperties()->destroy(keys);
+ }
+}
+
+int get_int_property(const char *property_name, int default_value, PropertyTable table_number)
+{
+ assert(property_name);
+ char *value = get_property(property_name, table_number);
+ int return_value = default_value;
+ if (NULL != value)
+ {
+ return_value = atoi(value);
+ destroy_property_value(value);
+ }
+ return return_value;
}
-// Return a value of the current property
-const char* vm_properties_get_string_value(PropertiesIteratorHandle props_iter) {
- return properties_get_string_value(props_iter);
+Boolean get_boolean_property(const char *property_name, Boolean default_value, PropertyTable table_number)
+{
+ assert(property_name);
+ char *value = get_property(property_name, table_number);
+ if (NULL == value)
+ {
+ return default_value;
+ }
+ Boolean return_value = default_value;
+ if (0 == strcmp("no", value)
+ || 0 == strcmp("off", value)
+ || 0 == strcmp("false", value)
+ || 0 == strcmp("0", value))
+ {
+ return_value = FALSE;
+ }
+ else if (0 == strcmp("yes", value)
+ || 0 == strcmp("on", value)
+ || 0 == strcmp("true", value)
+ || 0 == strcmp("1", value))
+ {
+ return_value = TRUE;
+ }
+ destroy_property_value(value);
+ return return_value;
}
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Environment.cpp Thu Nov 30 04:54:59 2006
@@ -39,7 +39,6 @@
mem_pool(pool),
bootstrap_class_loader(NULL),
system_class_loader(NULL),
-properties(NULL),
TI(NULL),
nsoTable(NULL),
portLib(NULL),
@@ -50,7 +49,8 @@
ready_for_exceptions(false)
{
// TODO: Use proper MM.
- properties = new Properties();
+ m_java_properties = new Properties();
+ m_vm_properties = new Properties();
bootstrap_class_loader = new BootstrapClassLoader(this);
hythread_lib_create(&hythread_lib);
@@ -203,7 +203,7 @@
Global_Env::~Global_Env()
{
- if (vm_get_boolean_property_value_with_default("vm.noCleanupOnExit")) {
+ if (get_boolean_property("vm.noCleanupOnExit", false, VM_PROPERTIES)) {
return;
}
@@ -223,8 +223,10 @@
delete vm_methods;
vm_methods = NULL;
- delete properties;
- properties = NULL;
+ delete m_java_properties;
+ m_java_properties = NULL;
+ delete m_vm_properties;
+ m_vm_properties = NULL;
nso_clear_lookup_table(nsoTable);
nsoTable = NULL;
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/Verifier_stub.cpp Thu Nov 30 04:54:59 2006
@@ -46,7 +46,7 @@
*/
Boolean is_forced = env->verify_all;
Boolean is_bootstrap = m_class_loader->IsBootstrap();
- Boolean is_enabled = vm_get_boolean_property_value_with_default("vm.use_verifier");
+ Boolean is_enabled = get_boolean_property("vm.use_verifier", TRUE, VM_PROPERTIES);
/**
* Verify class
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/classloader.cpp Thu Nov 30 04:54:59 2006
@@ -1139,21 +1139,10 @@
}
inline void
-BootstrapClassLoader::SetClasspathFromProperty(const char* prop_string,
+BootstrapClassLoader::SetClasspathFromString(char* bcp,
apr_pool_t* tmp_pool)
{
- // get property value
- const char *bcp_value = properties_get_string_property(
- reinterpret_cast<PropertiesHandle>(m_env->properties), prop_string);
- assert(bcp_value);
-
- size_t len = strlen(bcp_value) + 1;
- char *bcp = (char *)STD_ALLOCA( len );
- memcpy(bcp, bcp_value, len);
-#ifdef PLATFORM_NT
- //on windows, we change the path to lower case
- strlwr(bcp);
-#endif // PLATFORM_NT
+ assert(bcp);
// set bootclasspath elements
const char separator[2] = {PORT_PATH_SEPARATOR, 0};
@@ -1163,6 +1152,7 @@
SetBCPElement(path_name, tmp_pool);
path_name = strtok(NULL, separator);
}
+
return;
} // BootstrapClassLoader::SetClasspathFromProperty
@@ -1233,6 +1223,7 @@
size_t len = strlen(jar_classpath) + 1;
char* classpath = (char*)STD_ALLOCA(len);
memcpy(classpath, jar_classpath, len);
+ STD_FREE((void*)jar_classpath); //FIXME inconsistent MM
#ifdef PLATFORM_NT
//on windows, we change the path to lower case
strlwr(classpath);
@@ -1322,19 +1313,11 @@
ClassLoader::Initialize();
// get list of natives libraries
- const char *lib_list =
- properties_get_string_property(
- reinterpret_cast<PropertiesHandle>(m_env->properties),
- "vm.other_natives_dlls" );
+ char *lib_list = m_env->VmProperties()->get("vm.other_natives_dlls");
- size_t len = strlen( lib_list ) + 1;
-
- char *libraries = (char*)STD_ALLOCA( len );
- memcpy( libraries, lib_list, len );
-
// separate natives libraries
const char separator[2] = {PORT_PATH_SEPARATOR, 0};
- char *lib_name = strtok( libraries, separator );
+ char *lib_name = strtok( lib_list, separator );
while( lib_name != NULL )
{
@@ -1344,6 +1327,7 @@
// find next library
lib_name = strtok( NULL, separator );
}
+ m_env->VmProperties()->destroy(lib_list);
/*
* at this point, LUNI is loaded, so we can use the boot classpath
@@ -1359,18 +1343,16 @@
* the kernel
*/
- PropertiesHandle hProps = reinterpret_cast<PropertiesHandle>(m_env->properties);
-
/* strdup so that it's freeable w/o extra logic */
-
- const char *temp = properties_get_string_property(hProps, XBOOTCLASSPATH);
+ char *temp = m_env->VmProperties()->get(XBOOTCLASSPATH);
char *bcp_value = (temp ? strdup(temp) : NULL);
-
+ m_env->VmProperties()->destroy(temp);
+
if (bcp_value == NULL) {
/* not overridden, so lets build, adding the kernel to what luni made for us */
- const char *kernel_dir_path = properties_get_string_property(hProps, O_A_H_VM_VMDIR);
+ char *kernel_dir_path = m_env->JavaProperties()->get(O_A_H_VM_VMDIR);
char *kernel_path = (char *) malloc(strlen(kernel_dir_path == NULL ? "" : kernel_dir_path)
+ strlen(PORT_FILE_SEPARATOR_STR)
@@ -1379,8 +1361,9 @@
strcpy(kernel_path, kernel_dir_path);
strcat(kernel_path, PORT_FILE_SEPARATOR_STR);
strcat(kernel_path, KERNEL_JAR);
-
- const char *luni_path = properties_get_string_property(hProps,O_A_H_BOOT_CLASS_PATH);
+ m_env->JavaProperties()->destroy(kernel_dir_path);
+
+ char *luni_path = m_env->JavaProperties()->get(O_A_H_BOOT_CLASS_PATH);
char *vmboot = (char *) malloc(strlen(luni_path == NULL ? "" : luni_path)
+ strlen(kernel_path) + strlen(PORT_PATH_SEPARATOR_STR) + 1);
@@ -1388,6 +1371,7 @@
strcpy(vmboot, kernel_path);
strcat(vmboot, PORT_PATH_SEPARATOR_STR);
strcat(vmboot, luni_path);
+ m_env->JavaProperties()->destroy(luni_path);
free(kernel_path);
bcp_value = vmboot;
@@ -1397,8 +1381,8 @@
* now if there a pre or post bootclasspath, add those
*/
- const char *prepend = properties_get_string_property(hProps, XBOOTCLASSPATH_P);
- const char *append = properties_get_string_property(hProps, XBOOTCLASSPATH_A);
+ char *prepend = m_env->VmProperties()->get(XBOOTCLASSPATH_P);
+ char *append = m_env->VmProperties()->get(XBOOTCLASSPATH_A);
if (prepend || append) {
@@ -1423,16 +1407,16 @@
free(bcp_value);
bcp_value = temp;
}
-
+ m_env->VmProperties()->destroy(prepend);
+ m_env->VmProperties()->destroy(append);
/*
* set VM_BOOT_CLASS_PATH and SUN_BOOT_CLASS_PATH for any code
* that needs it
*/
- add_pair_to_properties(*m_env->properties, VM_BOOT_CLASS_PATH, bcp_value);
- add_pair_to_properties(*m_env->properties, SUN_BOOT_CLASS_PATH, bcp_value);
-
- free(bcp_value);
+ m_env->VmProperties()->set(VM_BOOT_CLASS_PATH, bcp_value);
+ m_env->JavaProperties()->set(VM_BOOT_CLASS_PATH, bcp_value);
+ m_env->JavaProperties()->set(SUN_BOOT_CLASS_PATH, bcp_value);
// create temp pool for apr functions
apr_pool_t *tmp_pool;
@@ -1440,14 +1424,15 @@
// create a bootclasspath collection
- SetClasspathFromProperty(VM_BOOT_CLASS_PATH, tmp_pool);
+ SetClasspathFromString(bcp_value, tmp_pool);
+ free(bcp_value);
// check if vm.bootclasspath.appendclasspath property is set to true
- Boolean is_enabled =
- vm_get_boolean_property_value_with_default("vm.bootclasspath.appendclasspath");
- if( TRUE == is_enabled ) {
+ if( TRUE == get_boolean_property("vm.bootclasspath.appendclasspath", FALSE, VM_PROPERTIES) ) {
// append classpath to bootclasspath
- SetClasspathFromProperty("java.class.path", tmp_pool);
+ char * cp = m_env->JavaProperties()->get("java.class.path");
+ SetClasspathFromString(cp, tmp_pool);
+ m_env->JavaProperties()->destroy(cp);
}
// get a classpath from archive files manifest and
Modified: harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp
URL: http://svn.apache.org/viewvc/harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp?view=diff&rev=480913&r1=480912&r2=480913
==============================================================================
--- harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp (original)
+++ harmony/enhanced/drlvm/trunk/vm/vmcore/src/class_support/manifest.cpp Thu Nov 30 04:54:59 2006
@@ -162,7 +162,7 @@
// set property
if( IsMainProperty( propName ) ) {
- m_main.add( strdup(propName), new Prop_String(strdup(propValue)) );
+ m_main.set((const char*)propName, (const char*)propValue);
}
} while( pointer - manifest < manifestSize );
@@ -174,9 +174,7 @@
Manifest::~Manifest()
{
- m_main.clear();
}
-
bool Manifest::IsMainProperty( const char* prop )
{