Return-Path: Delivered-To: apmail-harmony-commits-archive@www.apache.org Received: (qmail 78012 invoked from network); 30 Nov 2006 12:55:48 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 30 Nov 2006 12:55:48 -0000 Received: (qmail 63417 invoked by uid 500); 30 Nov 2006 12:55:57 -0000 Delivered-To: apmail-harmony-commits-archive@harmony.apache.org Received: (qmail 63394 invoked by uid 500); 30 Nov 2006 12:55:57 -0000 Mailing-List: contact commits-help@harmony.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@harmony.apache.org Delivered-To: mailing list commits@harmony.apache.org Received: (qmail 63380 invoked by uid 99); 30 Nov 2006 12:55:57 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Nov 2006 04:55:57 -0800 X-ASF-Spam-Status: No, hits=-9.4 required=10.0 tests=ALL_TRUSTED,NO_REAL_NAME X-Spam-Check-By: apache.org Received: from [140.211.11.3] (HELO eris.apache.org) (140.211.11.3) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 30 Nov 2006 04:55:43 -0800 Received: by eris.apache.org (Postfix, from userid 65534) id 600061A984E; Thu, 30 Nov 2006 04:55:05 -0800 (PST) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: 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... Date: Thu, 30 Nov 2006 12:55:01 -0000 To: commits@harmony.apache.org From: varlax@apache.org X-Mailer: svnmailer-1.1.0 Message-Id: <20061130125505.600061A984E@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org 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 - -#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 +#include +#include 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(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(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(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 ) {