Commit
d84ed6fceb42e241fc39343da5c6aa2a5f487c65
by aaronwang0407Change Node::mayUse() function to return TR_UseOnlyAliasSetInterface This commit make Node::mayUse() function to initialize the AliasInterface from the TR_SymAliasSetInterface class directly instead of from the TR_NodeUseAliasSetInterface class. This helps remove the NodeAliasing class. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: d84ed6f) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/AliasSetInterface.hpp (diff) |
Commit
ea2fdde26daf629ae5c6a3fdb6ed6155ec8be86b
by aaronwang0407Change Node::mayKill() function to return TR_UseDefAliasSetInterface This commit make Node::mayKill() function to initialize the AliasInterface from the TR_SymAliasSetInterface class directly instead of from the TR_NodeKillAliasSetInterface class. This helps remove the NodeAliasing class. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: ea2fdde) |
 | compiler/optimizer/OMRLocalCSE.cpp (diff) |
 | compiler/il/AliasSetInterface.hpp (diff) |
 | compiler/optimizer/OMRLocalCSE.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/optimizer/LoopVersioner.cpp (diff) |
 | compiler/optimizer/LocalAnticipatability.cpp (diff) |
|
 | compiler/il/AliasSetInterface.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
Commit
27d55ea5401ccb194cefc1a2d601675da56a41cb
by Dhruv.C.ChopraAdd isRelocatable boolean inside loadAddressConstant This boolean can be set by the caller to indicate that the instructions generated by loadAddressConstant need to be relocated. The reason we use this boolean is because the cg->comp()->compileRelocatableCode() query may not always return the correct answer for when relocatable code needs to be generated. For example: a regular JIT compile done remotely. So for now, we allow the caller to make the decision on if the instructions needs to be relocatable when not in an AOT compile. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 27d55ea) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
Commit
bf75a9cfe5bb7938bb49dc064900ce1071691b8a
by Dhruv.C.ChopraCorrectly use loadAddressConstant API for lookup IL lookup schmemes 3 and 4 use the loadAddressConstant API to materialize addresses into a register. These instructions need to be relocatable. This commit specifies the boolean parameter correctly in order to indicate to the API that relocation for the instructions is necessary. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: bf75a9c) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
Commit
46db4975adcb17d852cd1e98eac3c6b9e23fb387
by Dhruv.C.ChopraSpecify isRelocatable bool for TR_DataAddress When generating a TR_DataAddress contant using the loadAddressConstant API in accessStaticItem, we must provide the correct value for the isRelocatable parameter. This will allow the routine to create relocatable instructions for remote compilations. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 46db497) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
Commit
4f716ae1ede541ceca622304f1dbc4c50b85ba42
by Dhruv.C.ChopraDon't do local relocation for remote compilations Doing a local relocation is problematic because when we do a relocation on the client, if there is already data in the location that needs to be patched, then we end up with garbage. This is becase we expect the patch location to be populated with zeroes and at patch time we OR the new data in (on Power). Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 4f716ae) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
Commit
858f77e994ffdf020272e791b3c6fee2b147ea5b
by Dhruv.C.ChopraDon't emit data for remote compilations For remote compilations, we must not emit the actual address when generating a fixed sequence on power during a remote compilation. This is because during relocation time on the client, the new data will be OR'ed in. This infrastructure depends on the fact that the data in the patch location is initially zero. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 858f77e) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
Commit
35705c44754860aba193d2dd25dbfe9c486173e3
by Dhruv.C.ChopraGenerate relocation record in ConstantDataSnippet When emitting an addressConstant, a relocation record must be created for ConstantDataSnippet. This commit adds the appropriate check to add a relocation when doing a remote compile. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 35705c4) |
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
|
 | compiler/z/codegen/ConstantDataSnippet.cpp (diff) |
|
 | compiler/il/OMRILOps.hpp (diff) |
Commit
7a612ac4e987ae6e1a605a89903c5b4b2b66a30a
by salman.ranaConcurrent GC Yield and Resume after CM GC Exclusive Previously, after terminating and yielding to an exclusive access request, Concurrent Scavenger would only resume if it yielded to an external VM access request. However, CS should also resume after yielding to internal GC request during CM init as it completely terminates CS and results in missed opportunity for CS to make progress. - upon GC termination request, `_concurrentState` is no longer transitioned to `concurrent_state_complete`, it's left in scan state. - Introduced `_concurrentResumable` configuration param for `MasterGCThread` which is set to true if the collector is resumable. (initialized to true for Scavenger, defaults to false for balanced) Signed-off-by: Salman Rana <salman.rana@ibm.com> (commit: 7a612ac) |
 | gc/base/MasterGCThread.cpp (diff) |
 | gc/base/MasterGCThread.hpp (diff) |
 | gc/base/standard/Scavenger.cpp (diff) |
Commit
fa1f0e02b8754407fa5625c83e79795b43d80fb9
by sbabneetAdd OMR_THR_MCS_LOCKS flag to enable/disable the MCS lock OMR_THR_MCS_LOCKS flag will be used to enable/disable the usage of the MCS lock in the OMR thread monitor. Related: https://github.com/eclipse/omr/pull/4086. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: fa1f0e0) |
 | configure (diff) |
 | cmake/config.cmake (diff) |
 | include_core/omrcfg.h.in (diff) |
 | omrcfg.CMakeTemplate.h (diff) |
 | configure.ac (diff) |
 | omrmakefiles/configure.mk.in (diff) |
|
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
Commit
7ad834a1c8826bbe8232bad88d04fc588fe41279
by sbabneetRemove unnecessary NULL checks around omrthread_free_memory omrthread_free_memory does an internal NULL check. So, wrapping omrthread_free_memory calls with a NULL check is irrelevant. Such NULL checks have been removed. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 7ad834a) |
 | thread/common/omrthread.c (diff) |
Commit
9c28af44439a2ef9f603c987ed3c46047793ce5a
by konnoAArch64: Set destination address in ARM64ImmSymInstruction This commit adds code for setting the destination address of "bl" instruction in ARM64ImmSymInstruction when possible, to improve the readability of trace files. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: 9c28af4) |
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
Commit
3c7df4a7e0875a9d00f99a9a87984cec02878a5b
by linhuKeep contracted LOA size not smaller than minimum LOA size - Keep LOA size not smaller than minimum LOA size during resizeLOA and resetLOA, expandWithRange, redistributeFreeMemory to avoid potential crash on some platforms. - Add assertion check for the case. - Enable size heapAlignment assertion by default. Signed-off-by: Lin Hu <linhu@ca.ibm.com> (commit: 3c7df4a) |
 | gc/base/MemoryPoolLargeObjects.cpp (diff) |
Commit
b5ea61dd08e562856757a5dfdbbf9df94b809353
by jkingdonFix checkAndReplaceRotation 32/64 bit ambiguity checkAndReplaceRotation tests for pattern validity by comparing an expected shift amount based on the size of the operand with the constant from the multiply node: if ( (1 << correctLeftShiftAmount) != mulConst ) return false; Unfortunately, the implicit int constant '1' allows the C++ compiler to ignore the possibility of shift amounts>32 (undefined behaviour), resulting in 1<<n giving the same answer as 1<<(n+32). This allowed the simplification to proceed on a 64 bit operand with shift values that were only valid for 32 bit operands. The shift has been updated with code crafted by Leonardo which allows the test to correctly differentiate between 32 and 64 bit valid patterns. Signed-off-by: James Kingdon <jkingdon@ca.ibm.com> (commit: b5ea61d) |
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
Commit
18c567b7adbab7b3e19f9ddeaf837a3fdbd41f15
by sbabneetFix the compile failure related to the lockExchange function on AIX Details: 1540-0256 (S) A parameter of type "volatile unsigned long *" cannot be initialized with an expression of type "volatile long *". 1540-1205 (I) The error occurred while converting to parameter 1 of "__fetch_and_swaplp(volatile unsigned long *, unsigned long)". Related: https://github.com/eclipse/omr/pull/4469. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 18c567b) |
 | include_core/AtomicSupport.hpp (diff) |
|
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
 | compiler/il/OMRIL.cpp (diff) |
|
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
 | compiler/il/OMRIL.cpp (diff) |
|
 | compiler/z/codegen/ConstantDataSnippet.cpp (diff) |
|
 | compiler/z/codegen/S390Instruction.cpp (diff) |
Commit
bcc882c6505e63fdecfda93aaa01e850839dfbc5
by benDisable ExpandInstructionsPhase on codegens that don't use it Previously, ExpandInstructionsPhase would iterate over every instruction and call a virtual method on each, even if the codegen in question wasn't making use of it. Since only the Power codegen currently has plans to make immediate use of this phase, other codegens do not need to be doing this. To avoid performing unnecessary work, expandInstructions is now stubbed out on all codegens other than Power. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: bcc882c) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
Commit
5166fff7626cbb97a2dfe8924c9fa7a8b81c9c91
by sbabneetHandle __fetch_and_swap(lp) across XLC versions used by OMR consumers For XLC versions < 13.1.3, the following __fetch_and_swap(lp) definitions are supported: i) __fetch_and_swaplp(volatile long *, long) ii) __fetch_and_swap(volatile int *, int) For XLC versions >= 13.1.3, the following __fetch_and_swap(lp) definitions are supported: i) __fetch_and_swaplp(volatile unsigned long *, unsigned long) ii) __fetch_and_swap(volatile unsigned int *, unsigned int) Co-Authored-By: Robert Young <rwy0717@gmail.com> Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 5166fff) |
 | include_core/AtomicSupport.hpp (diff) |
|
 | compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
|
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
|
 | compiler/ras/Debug.cpp (diff) |
 | compiler/runtime/Helpers.inc (diff) |
|
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/control/OMROptions.hpp (diff) |
Commit
38a8038c84bda1d466865c09bd8e6a424d08821b
by yizhangRefactor callsite constructor macro The old macro doesn't support callsite subclasses for defining more complicated constructor other than initailizing the fields that exists in the super class. Adding this ability by breaking the single macro into three parts 1. TR_ALLOC 2. constructor signature and super classes field initialization 3. constructor method body Signed-off-by: Yi Zhang <yizhang@ca.ibm.com> (commit: 38a8038) |
 | compiler/optimizer/CallInfo.hpp (diff) |
Commit
775d7cf5233519ae3d1009b9a27a732596cfd1d0
by mobileRefactor the optimizer to allocate UseDefInfo through a central location This change implements the recommended refactoring suggested by @andrewcraik in the review comments for https://github.com/eclipse/omr/pull/2823. The background is that we need to allow setting of the _hasCallAsUses flag depending on the language front-end. However this is currently hard coded to false. Following is a copy of Andrew's recommendation. Setting _hasCallAsUses should be handled as part of the constructor if it needs to be configured by different languages. This is the first time we are going to have a language specific override of a flag like this for UseDefInfo. Looking at how it is currently used instances of TR_UseDef_info are allocated in the OMROptimizer.cpp, ValueNumberInfo.cpp and LoadExtensions.cpp. There is some variation between them in how they configure UseDefInfo for globals. I think the best way to handle this is to create a new API on the Optimizer object (eg OMROptimizer.hpp and OMROptimizer.cpp) which all current allocation sites switch to calling - the method will accept as parameters the bools which vary between the different request sites within the compiler. The value for _hasCallAsUses could be either stored as a flag in the optimizer or by overriding the build method to change how UseDefInfo is built. I would prefer the later since it means languages have a common place to configure UseDefInfo according to their needs. This small refactor would ideally be done as a separate commit and pull request ahead of changes introducing the new flag to the constructor. I hope that makes sense - if it doesn't do keep asking questions and I'll try to clarify more on how this would work. An added bonus of this is that we could improve the UseDefInfo memory management in a follow-on item which would be a another good reason to Refactor the optimizer to allocate UseDefInfo through a central location. End quote. Note that this change does not address the construction of TR_OSRDefInfo, which extends the TR_UseDefInfo class. To allow language front-ends to control this flag when use defs are analysed we need a callsAsUses flag to be held by the Optimizer and we need methods to get and set the flag. This flag will be used when constructing TR_UseDefInfo objects. The callsAsUses parameter is controlled by a virtual method in the Optimizer that front-end language implementations may override to change the default behaviour. Also the TR_UseDefInfo constructor has been made protected to avoid users making a mistake trying to construct it directly. Signed-off-by: Dibyendu Majumdar <mobile@majumdar.org.uk> (commit: 775d7cf) |
 | compiler/optimizer/OMROptimizer.cpp (diff) |
 | compiler/optimizer/ValueNumberInfo.cpp (diff) |
 | compiler/optimizer/UseDefInfo.cpp (diff) |
 | compiler/optimizer/OMROptimizer.hpp (diff) |
 | compiler/optimizer/UseDefInfo.hpp (diff) |
 | compiler/optimizer/LoadExtensions.cpp (diff) |
Commit
3a668284a8c315adb740f36c03f5936193a98517
by rwy0717Forward format args to trace function in nonfatal assertion TR::Assertion is passing the format string, but not the variadic arguments, to fatal assert. This is causing crashes in the printing helper. This commit introduces a new function, va_fatal_assertion, which accepts a va_list argument. Both assertion and fatal_assertion call this helper. Using this helper, the arguments should be forwarded along correctly to the printing helper. Fixes: #4423 Signed-off-by: Robert Young <rwy0717@gmail.com> (commit: 3a66828) |
 | compiler/infra/Assert.cpp (diff) |
|
 | util/avl/avlsup.c (diff) |
 | util/avl/avl_internal.h |
|
 | compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff) |
|
 | compiler/runtime/Helpers.inc (diff) |
|
 | compiler/il/OMRSymbolReference.cpp (diff) |
 | compiler/optimizer/VPHandlersCommon.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/codegen/OMRRegisterPair.cpp (diff) |
 | compiler/z/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenPhase.cpp (diff) |
 | compiler/arm/codegen/OMRLinkage.cpp (diff) |
 | compiler/infra/OMRMonitor.cpp (diff) |
 | compiler/codegen/OMRInstOpCode.cpp (diff) |
 | compiler/il/OMRILOps.cpp (diff) |
 | compiler/optimizer/OMROptimization.cpp (diff) |
 | compiler/z/codegen/InstOpCodeTables.cpp (diff) |
 | compiler/runtime/OMRCodeCacheManager.cpp (diff) |
 | compiler/runtime/OMRCodeMetaData.cpp (diff) |
 | compiler/il/OMRBlock.cpp (diff) |
 | compiler/codegen/OMRMachine.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
 | compiler/runtime/OMRCodeMetaDataManager.cpp (diff) |
 | compiler/optimizer/ValuePropagationCommon.cpp (diff) |
 | compiler/codegen/OMRRealRegister.cpp (diff) |
 | compiler/runtime/OMRCodeCache.cpp (diff) |
 | compiler/env/FEBase.cpp (diff) |
 | compiler/infra/OMRCfg.cpp (diff) |
 | compiler/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/codegen/OMRELFRelocationResolver.cpp (diff) |
 | compiler/x/codegen/OMRLinkage.cpp (diff) |
 | compiler/optimizer/OMRValuePropagation.cpp (diff) |
 | compiler/optimizer/VPHandlers.cpp (diff) |
 | compiler/codegen/OMRRegister.cpp (diff) |
 | compiler/codegen/OMRGCStackAtlas.cpp (diff) |
 | compiler/optimizer/VPConstraint.cpp (diff) |
 | compiler/z/runtime/VirtualGuardRuntime.cpp (diff) |
 | compiler/codegen/PreInstructionSelection.cpp (diff) |
 | compiler/p/runtime/OMRCodeCacheConfig.cpp (diff) |
 | compiler/z/codegen/OMRLinkage.cpp (diff) |
 | compiler/codegen/CodeGenPrep.cpp (diff) |
 | compiler/codegen/NodeEvaluation.cpp (diff) |
 | compiler/codegen/CodeGenGC.cpp (diff) |
 | compiler/compile/OMRAliasBuilder.cpp (diff) |
 | compiler/compile/TLSCompilationManager.cpp (diff) |
 | compiler/codegen/CodeGenRA.cpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
 | compiler/codegen/OMRUnresolvedDataSnippet.cpp (diff) |
|
 | compiler/ras/Debug.cpp (diff) |
Commit
6ff92cebb02cde82e3cd4cdc0006be7c282004c4
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR:: iumul Remove all of its definitions, including its declaration, property and all other lists/enums that defines the behavior of thos ILOpcode. Also removed functions: ARM64::iumulEvaluator(), constrainIumul() TR::iumul is completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 6ff92ce) |
 | compiler/optimizer/VPHandlers.cpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
|
 | fvtest/tril/tril/parser.cpp |
 | fvtest/tril/tril/tril.y |
 | fvtest/tril/tril/CMakeLists.txt (diff) |
 | fvtest/tril/tril/tril.l |
Commit
cf8987d2c3c58363d8413fe58a74f6e0fee513d6
by haleycao88Created Function Prototypes for OMRSocketAPI Created Unimplemented Function Prototypes in omrsock.c -Modified omr files to be able to see and compile omrsock code -Added new omrsock.c file for common for all operating systems, this includes function prototypes proposed by the Socket API proprosal -Added omrsock variables needed by the function prototypes. They are created in omrportsock.h Issue: #4102 Co-authored-by: Babneet Singh <sbabneet@ca.ibm.com> Signed-off-by: Haley Cao <haleycao88@hotmail.com> (commit: cf8987d) |
 | port/omrportpriv.h (diff) |
 | port/common/omrport.c (diff) |
 | include_core/omrport.h (diff) |
 | include_core/omrportsock.h |
 | port/port_objects.mk (diff) |
 | port/CMakeLists.txt (diff) |
 | port/common/omrsock.c |
|
 | compiler/codegen/OMRCodeGenPhase.cpp (diff) |
Commit
b1996667abf3c6e905a320166959603095975f52
by benFix missing defines in Power SPP files when building with CMake For legacy reasons, the assembly files for Power are run through the C preprocessor separately from when they are assembled. However, some defines (namely platform ones such as TR_HOST_64BIT) were not being correctly passed to the C preprocessor when running these assembly files through it when building with CMake. This has now been corrected. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: b199666) |
 | cmake/modules/OmrCompilerSupport.cmake (diff) |
Commit
e355f32138638a9fb8cab449b3dfa37558273b19
by benFix OMRMonitor.cpp failing to compile on AIX Previously, OMRMonitor.hpp contained a workaround for an XLC issue with private delete operators in it. However, this workaround was only used when compiling on z/OS, meaning that attempting to build the OMR compiler on AIX with XLC would fail with an error in OMRMonitor.cpp. This workaround has now been enabled on AIX. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: e355f32) |
 | compiler/infra/OMRMonitor.hpp (diff) |
Commit
f6a932c6f710353e0c34f7e286cb3057ec37e6eb
by aaronwang0407Remove all the definictions of deprected ILOpCode TR::cmul There is no definitions and declarations to this opcode. Removed all commentted codes that reference this TR::cmul. Also removed cmulEvaluator() functions. TR::cmul is completely removed from OMR after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: f6a932c) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/x/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
eed978c3b69ab8d8702b9cb4840487e8a0fa347b
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR::buternary Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. TR::buternery will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: eed978c) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
Commit
7b0e52e8a108ce963d5d4633f3e7064449f91f07
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR::iuternary Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. TR::iuternery will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 7b0e52e) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
Commit
6695ff8e9fb441736650814fe8f086e6df439872
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR::luternary Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. TR::luternery will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 6695ff8) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
Commit
01d30187882b48fccde617b83c02b66cfdbf9148
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR::suternary Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. TR::suternery will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 01d3018) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
Commit
107365cedff231d4baa33c61858403a7a0e310fe
by benEnable Tril and test compiler hacks on AIX Previously, there were a number of hacks to work around xlc issues in Tril. However, these hacks were not being enabled on AIX since they were explicitly guarded by checking J9ZOS390, as z/OS was previously the only platform supported by Tril that used xlc. In order to allow Tril to compile on AIX, these hacks have now been enabled on AIX. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 107365c) |
 | third_party/gtest-1.8.0/include/gtest/internal/gtest-port.h (diff) |
 | fvtest/tril/tril/method_compiler.hpp (diff) |
 | fvtest/compilertriltest/TypeConversionTest.cpp (diff) |
 | fvtest/omrGtestGlue/CMakeLists.txt (diff) |
 | fvtest/compilertriltest/ArithmeticTest.cpp (diff) |
 | fvtest/compilertest/tests/OpCodesTest.hpp (diff) |
Commit
675f519eb995a1d8ad72111a5d808038f078ddfb
by benFix mmap with MAP_ANONYMOUS not working on AIX It turns out that AIX's implementation of the mmap function requires that the file descriptor be set to -1 when using MAP_ANONYMOUS. Previously, there were a couple places that were trying to use MAP_ANONYMOUS without setting the file descriptor to -1, resulting in them erroring out. This has been corrected and they should now work correctly. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 675f519) |
 | jitbuilder/runtime/JBCodeCacheManager.cpp (diff) |
 | fvtest/compilertest/runtime/TestCodeCacheManager.cpp (diff) |
Commit
ca854e65e9e9fe27d0b646cab8c81200e77788a7
by benFix incorrect use of PRId64/PRIu64 in ShiftAndRotateTest Previously, a number of places in ShiftAndRotateTest were using PRId64 and PRIu64 directly in their format strings. However, this does not work correctly on AIX. These have been corrected to use OMR_PRId64 and OMR_PRIu64 instead. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: ca854e6) |
 | fvtest/compilertriltest/ShiftAndRotateTest.cpp (diff) |
Commit
9146ec1058f0acfa0fc3432f4844e6ceebb8693e
by benMake Tril::SimpleCompiler return a function descriptor on AIX On most platforms, function pointers are simply pointers to the first instruction in the function. However, on AIX and z/OS this is not true: they are instead pointers to data structures that themselves contain such a pointer. Support for calling Tril-compiled functions has now been added on AIX by adding the ability for Tril::SimpleCompiler to create such a function descriptor on AIX. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 9146ec1) |
 | fvtest/tril/tril/simple_compiler.cpp (diff) |
Commit
5240cd3711a5c649291938c6b8c61be7320ab3fd
by benSkip Tril tests affected by #3525 on Power BE A number of Tril tests are currently affected by #3525, in which the code generators spill sub-integer arguments to stack slots incorrectly. While this works correctly on little endian machines, it does not work on big endian machines. Previously, such tests were already being skipped on Z, but this issue also affects the Power codegen when run on a big-endian machine. In order to allow Tril tests to be run on AIX, such tests are now skipped when run on Power BE. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 5240cd3) |
 | fvtest/compilertriltest/ArithmeticTest.cpp (diff) |
 | fvtest/compilertriltest/ShiftAndRotateTest.cpp (diff) |
 | fvtest/compilertriltest/TypeConversionTest.cpp (diff) |
 | fvtest/compilertriltest/TernaryTest.cpp (diff) |
 | fvtest/compilertriltest/BitPermuteTest.cpp (diff) |
Commit
7e7a800758f8a4b470cbb3dd59586b99507d5eb9
by benFix tril_compiler and tril_dumper failing to link on AIX Due to failing to link against libpthread, neither the tril_compiler nor tril_dumper executables would link correctly on AIX. This has been corrected by forcing the tril library itself to link against libpthread, which in turn forces tril_compiler and tril_dumper to link against it as well. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 7e7a800) |
 | fvtest/tril/tril/CMakeLists.txt (diff) |
Commit
24bad33231939adcc7ae6b48229f53fc8a77760b
by benAdd hacks for running JitBuilder on AIX Previously, JitBuilder did not work properly on AIX due to similar problems to what Tril was previously facing. Since enabling Tril tests also enables JitBuilder tests, it is necessary to ensure that JitBuilder works at least minimally on AIX before Tril tests can be run in pull request builds for AIX. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 24bad33) |
 | jitbuilder/control/Jit.cpp (diff) |
Commit
f81669079bc16abbb75e6f43c54fcdc60cb9de37
by benDisable Tril's IlGenTest on AIX The IlGenTest from Tril's internal tests is currently broken on AIX, since it is not valid on AIX to use the return value of compileMethodFromDetails as a function pointer. Until such a time as this test is fixed, it has been temporarily disabled on AIX. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: f816690) |
 | fvtest/tril/test/IlGenTest.cpp (diff) |
Commit
c29da09d9ac2fbb2898f474b0d36f56fd1aca4b9
by benDisable test compiler tests on AIX The test compiler tests make the assumption that function pointers can simply be called using the regular call opcodes in the IL. This is not true on AIX, since function pointers do not actually point to the address of the first instruction of the function on AIX. As a result, the test compiler tests will always segfault when run on AIX. However, since the test compiler tests are effectively deprecated and were never previously run on AIX in the first place, this is not considered to be something worth fixing. Thus, the test compiler tests will no longer be run on AIX when using ctest. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: c29da09) |
 | fvtest/compilertest/CMakeLists.txt (diff) |
Commit
3a9a956a8b6c6eabc0b374779ae10e9ad362c7e6
by benEnable the JIT for AIX CI jobs Previously, the AIX pull request and build CI jobs explicitly disabled the JIT and all related components. However, recent work has now made it possible to compile the OMR JIT and run JitBuilder and Tril tests on AIX. Since this now works correctly, the JIT is no longer disabled in the AIX CI jobs. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 3a9a956) |
 | buildenv/jenkins/jobs/pull-requests/PullRequest-aix_ppc-64 (diff) |
 | buildenv/jenkins/jobs/builds/Build-aix_ppc-64 (diff) |
Commit
578eb174e06706e16622e1d9e6a263d64e3b2323
by fjeremicRemove Flex/Bison from AppVeyor and Travis With the merge of #4345 we no longer depend on Flex and Bison being installed for our testing. AppVeyor seems to be broken at the moment in that checksums are failing when installing this package. We fix the issue by removing the dependency as it is no longer needed. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 578eb17) |
 | .travis.yml (diff) |
 | .appveyor.yml (diff) |
|
 | cmake/modules/FindLEX.cmake |
 | cmake/modules/FindYACC.cmake |
 | fvtest/tril/tril/ast.h (diff) |
 | fvtest/tril/README.md (diff) |
 | fvtest/tril/tril/CMakeLists.txt (diff) |
Commit
99cc5fa996188c3b8c796679700c1d6d3b6d5fac
by haleycao88Created Test Stubs for OMR Socket API Created test stubs in omrsockTest.cpp, in test set PortSockTest in Port Tests -Created 2 helper function stubs, one for setting up a server socket, one for setting up a client socket. These functions will be called multiple times, in multiple tests. -Created 4 test stubs in PortSockTest. -Will need to add other tests during implementation. Issue: #4102 Signed-off-by: Haley Cao <haleycao88@hotmail.com> (commit: 99cc5fa) |
 | fvtest/porttest/omrsockTest.cpp |
 | fvtest/porttest/CMakeLists.txt (diff) |
 | fvtest/porttest/makefile (diff) |
Commit
e7ad4e9fd294aca4d6dd7ed1b818beafcb65e57d
by sbabneetAdd code to allocate and free OMRThreadMCSNodes Two static functions, allocate_mcs_nodes and free_mcs_nodes, are added to allocate and free an OMRThreadMCSNodes structure respectively. The code is wrapped using OMR_THR_MCS_LOCKS ifdefs. Related: https://github.com/eclipse/omr/pull/4086. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: e7ad4e9) |
 | thread/common/omrthread.c (diff) |
Commit
9752b5202ccf56afcdd4900b1c7ef3bad508e357
by sbabneetInitialize J9Thread->mcsNodes The entry points where J9Thread->mcsNodes needs to be allocated and initialized: 1) omrthread_attach_ex 2) threadCreate The exit point where J9Thread->mcsNodes needs to be freed: 1) threadDestroy OMRTHREAD_ERR_CANT_ALLOC_MCS_NODES added to tag errors related to allocating J9Thread->mcsNodes. The code is wrapped using OMR_THR_MCS_LOCKS ifdefs. Related: https://github.com/eclipse/omr/pull/4086. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 9752b52) |
 | thread/common/omrthread.c (diff) |
 | include_core/omrthread_generated.h (diff) |
Commit
2a693b39e9aebcbe816d974ec9b688e5528a3b70
by sbabneetInitialize and reset J9ThreadMonitor->queueTail The entry point where J9ThreadMonitor->queueTail needs to be initialized is: 1) monitor_init The two exit points where J9ThreadMonitor->queueTail needs to be reset are: 1) monitor_free_nolock 2) monitor_free For initialization and reset, queueTail is set to NULL. The code is wrapped using OMR_THR_MCS_LOCKS ifdefs. Related: https://github.com/eclipse/omr/pull/4086. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 2a693b3) |
 | thread/common/omrthread.c (diff) |
Commit
add43580d98baa7f67e9e1130af0203f815e9370
by benRemove PPCAlignedLabelInstruction Previously, the Power codegen had a class of instruction called PPCAlignedLabelInstruction. This class was meant to be used for labels that should be aligned on a given boundary, but it was unused. On top of that, there's no reason to conflate labels and alignment at all: we could theoretically want to align instructions without adding a label. For these reasons, this old class of instruction is being removed. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: add4358) |
 | compiler/p/codegen/GenerateOMRInstructions.hpp (diff) |
 | compiler/p/codegen/OMRInstructionKindEnum.hpp (diff) |
 | compiler/p/codegen/GenerateInstructions.cpp (diff) |
 | compiler/p/codegen/PPCInstruction.hpp (diff) |
 | compiler/p/codegen/PPCDebug.cpp (diff) |
 | compiler/p/codegen/PPCBinaryEncoding.cpp (diff) |
|
 | compiler/aarch64/codegen/GenerateInstructions.cpp (diff) |
 | compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff) |
 | compiler/ras/Debug.hpp (diff) |
 | compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff) |
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.hpp (diff) |
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
 | compiler/aarch64/codegen/OpBinary.cpp (diff) |
|
 | compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff) |
|
 | compiler/ras/DebugCounter.cpp (diff) |
 | compiler/x/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/control/CompileMethod.cpp (diff) |
 | compiler/z/codegen/OMRMachine.cpp (diff) |
 | compiler/z/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/control/CompilationController.cpp (diff) |
 | compiler/optimizer/OSRDefAnalysis.cpp (diff) |
 | compiler/z/codegen/SystemLinkagezOS.cpp (diff) |
 | compiler/ras/LimitFile.cpp (diff) |
 | compiler/optimizer/InductionVariable.cpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
 | compiler/codegen/PreInstructionSelection.cpp (diff) |
 | jitbuilder/runtime/JBJitConfig.cpp (diff) |
 | compiler/z/codegen/S390Debug.cpp (diff) |
 | compiler/optimizer/IsolatedStoreElimination.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/il/OMRSymbol.cpp (diff) |
 | compiler/p/codegen/PPCHelperCallSnippet.cpp (diff) |
 | compiler/codegen/FrontEnd.hpp (diff) |
 | compiler/il/OMRRegisterMappedSymbol.cpp (diff) |
 | compiler/il/OMRSymbolReference.cpp (diff) |
 | compiler/optimizer/SwitchAnalyzer.cpp (diff) |
 | compiler/optimizer/CompactLocals.cpp (diff) |
 | compiler/optimizer/StructuralAnalysis.cpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff) |
 | jitbuilder/env/FrontEnd.hpp (diff) |
 | compiler/optimizer/UseDefInfo.cpp (diff) |
 | compiler/p/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/p/codegen/GenerateInstructions.cpp (diff) |
 | compiler/z/codegen/TranslateEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRLinkage.cpp (diff) |
 | compiler/codegen/OMRCodeGenPhase.cpp (diff) |
 | compiler/control/OMROptions.hpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/OMRInstruction.cpp (diff) |
 | fvtest/compilertest/env/FrontEnd.hpp (diff) |
 | compiler/optimizer/VirtualGuardHeadMerger.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/optimizer/ValuePropagationCommon.cpp (diff) |
 | compiler/p/codegen/PPCTableOfConstants.cpp (diff) |
 | compiler/optimizer/LocalTransparency.cpp (diff) |
 | compiler/z/codegen/SystemLinkage.cpp (diff) |
 | compiler/x/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.hpp (diff) |
 | fvtest/compilertest/ilgen/TestIlGeneratorMethodDetails.cpp (diff) |
 | compiler/ilgen/ByteCodeIteratorWithState.hpp (diff) |
 | compiler/optimizer/OMRSimplifier.cpp (diff) |
 | compiler/z/codegen/OMRRegisterDependency.hpp (diff) |
 | compiler/z/codegen/BinaryAnalyser.cpp (diff) |
 | compiler/infra/Assert.cpp (diff) |
 | compiler/optimizer/OMROptimization.cpp (diff) |
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
 | compiler/il/Aliases.cpp (diff) |
 | compiler/optimizer/VirtualGuardCoalescer.cpp (diff) |
 | compiler/optimizer/OMROptimizer.cpp (diff) |
 | compiler/optimizer/InductionVariable.hpp (diff) |
 | compiler/optimizer/RedundantAsyncCheckRemoval.cpp (diff) |
 | compiler/z/codegen/S390Peephole.cpp (diff) |
 | compiler/optimizer/VPHandlers.cpp (diff) |
 | compiler/z/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/optimizer/Structure.hpp (diff) |
 | compiler/z/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/infra/HedgeTree.hpp (diff) |
 | compiler/optimizer/CopyPropagation.cpp (diff) |
 | compiler/optimizer/OMRValuePropagation.cpp (diff) |
 | compiler/optimizer/LocalDeadStoreElimination.cpp (diff) |
 | jitbuilder/CMakeLists.txt (diff) |
 | compiler/env/FrontEnd.hpp |
 | compiler/runtime/Trampoline.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | jitbuilder/ilgen/JBIlGeneratorMethodDetails.cpp (diff) |
 | compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff) |
 | compiler/codegen/CodeGenRA.cpp (diff) |
 | compiler/z/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/z/codegen/ConstantDataSnippet.cpp (diff) |
 | compiler/x/codegen/IntegerMultiplyDecomposer.cpp (diff) |
 | compiler/z/codegen/OMRInstruction.cpp (diff) |
 | compiler/optimizer/LocalReordering.cpp (diff) |
 | compiler/z/codegen/S390HelperCallSnippet.cpp (diff) |
 | compiler/optimizer/GeneralLoopUnroller.cpp (diff) |
 | compiler/optimizer/RegisterCandidate.cpp (diff) |
 | compiler/optimizer/LoopReducer.cpp (diff) |
 | compiler/ras/OptionsDebug.cpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/optimizer/SinkStores.cpp (diff) |
 | compiler/z/codegen/CallSnippet.cpp (diff) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/il/OMRResolvedMethodSymbol.cpp (diff) |
 | compiler/p/codegen/OMRMachine.cpp (diff) |
 | compiler/env/OMRKnownObjectTable.cpp (diff) |
 | compiler/x/codegen/OMRLinkage.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/TreeEvaluatorVMX.cpp (diff) |
 | compiler/x/codegen/OMRMachine.cpp (diff) |
 | compiler/infra/SimpleRegex.cpp (diff) |
 | compiler/optimizer/ReachingDefinitions.cpp (diff) |
 | compiler/p/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/optimizer/ReorderIndexExpr.cpp (diff) |
 | compiler/x/codegen/X86FPConversionSnippet.cpp (diff) |
 | compiler/z/codegen/OpMemToMem.cpp (diff) |
 | compiler/x/codegen/HelperCallSnippet.cpp (diff) |
 | compiler/il/OMRBlock.cpp (diff) |
 | compiler/optimizer/VPConstraint.cpp (diff) |
 | compiler/ras/Debug.cpp (diff) |
 | compiler/z/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/optimizer/OrderBlocks.cpp (diff) |
 | compiler/x/codegen/CompareAnalyser.cpp (diff) |
 | compiler/z/codegen/S390Peephole.hpp (diff) |
 | compiler/optimizer/GlobalRegisterAllocator.cpp (diff) |
 | compiler/env/FEBase.hpp (diff) |
 | compiler/optimizer/LocalAnalysis.cpp (diff) |
 | compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/compile/OSRData.cpp (diff) |
 | compiler/z/codegen/OMRRegisterDependency.cpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/codegen/FrontEnd.cpp (diff) |
 | compiler/optimizer/OMROptimizationManager.cpp (diff) |
 | compiler/z/codegen/OMRSnippet.cpp (diff) |
 | compiler/il/OMRResolvedMethodSymbol.hpp (diff) |
 | compiler/z/codegen/SystemLinkageLinux.cpp (diff) |
 | compiler/x/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/env/TRMemory.cpp (diff) |
 | compiler/ilgen/IlGenRequest.cpp (diff) |
 | compiler/optimizer/Dominators.cpp (diff) |
 | compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/PPCDebug.cpp (diff) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/arm/codegen/ConstantDataSnippet.cpp (diff) |
 | compiler/optimizer/LocalOpts.cpp (diff) |
 | compiler/optimizer/LocalLiveRangeReducer.cpp (diff) |
 | compiler/z/runtime/VirtualGuardRuntime.cpp (diff) |
 | compiler/codegen/CodeGenPrep.cpp (diff) |
 | compiler/optimizer/LoopVersioner.cpp (diff) |
 | compiler/compile/OMRCompilation.hpp (diff) |
 | compiler/x/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/X86BinaryEncoding.cpp (diff) |
 | compiler/optimizer/FieldPrivatizer.cpp (diff) |
 | compiler/control/OMRRecompilation.cpp (diff) |
 | compiler/compile/OMRSymbolReferenceTable.cpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
 | compiler/optimizer/OMRLocalCSE.cpp (diff) |
 | compiler/compile/VirtualGuard.cpp (diff) |
 | compiler/runtime/OMRCodeCache.cpp (diff) |
 | compiler/z/codegen/S390GenerateInstructions.cpp (diff) |
 | compiler/optimizer/VPHandlersCommon.cpp (diff) |
 | compiler/compile/OMRSymbolReferenceTable.hpp (diff) |
 | compiler/p/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/optimizer/LocalAnticipatability.cpp (diff) |
 | compiler/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/optimizer/StripMiner.cpp (diff) |
 | compiler/ras/IgnoreLocale.cpp (diff) |
 | compiler/optimizer/GlobalAnticipatability.cpp (diff) |
 | compiler/optimizer/LoopReplicator.cpp (diff) |
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
 | compiler/p/codegen/PPCBinaryEncoding.cpp (diff) |
 | compiler/optimizer/PrefetchInsertion.cpp (diff) |
 | compiler/optimizer/DeadTreesElimination.cpp (diff) |
 | compiler/optimizer/Inliner.cpp (diff) |
 | compiler/optimizer/PartialRedundancy.cpp (diff) |
 | compiler/optimizer/LoopCanonicalizer.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/runtime/OMRCodeCacheManager.cpp (diff) |
 | compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff) |
Commit
76b04eee42157e8be802d6a0022a22e84eb362f0
by benAdd an alignment nop instruction class on Power In some cases, it is beneficial to ensure that an instruction is aligned to a specific number of bytes by padding the instruction stream with nops. The Power codegen was previously doing this ad-hoc in the binary encoder, but a better solution would be to allow tree evaluators to signal where this should happen. This is now possible using the new PPCAlignmentNopInstruction class of instruction. When binary encoded, this instruction will generate the necessary number of nops to ensure that the next instruction is aligned on the requested boundary. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 76b04ee) |
 | compiler/p/codegen/GenerateOMRInstructions.hpp (diff) |
 | compiler/p/codegen/OMRInstructionKindEnum.hpp (diff) |
 | compiler/p/codegen/GenerateInstructions.cpp (diff) |
 | compiler/p/codegen/PPCInstruction.hpp (diff) |
 | compiler/p/codegen/PPCBinaryEncoding.cpp (diff) |
 | compiler/ras/Debug.hpp (diff) |
 | compiler/p/codegen/PPCDebug.cpp (diff) |
Commit
358b1ffbba0f13cf8c8f647c1113d2c3a9a01d2b
by benRefactor alignment of loop start labels on Power Previously, the Power codegen would perform alignment of loop start labels in the binary encoding loop by checking the node for which a label instruction was emitted. This is surprising behaviour, so it has been replaced by using the new PPCAlignmentNopInstruction. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 358b1ff) |
 | compiler/p/codegen/OMRInstruction.hpp (diff) |
 | compiler/p/codegen/PPCBinaryEncoding.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRInstruction.cpp (diff) |
Commit
d42c6471f19eaa4f182b9f96f7a3b2a6d035b4f7
by benMake group-ending nops apparent in the tracefile Previously, the genop instruction had the unhelpful name of "nop", making it indistinguishable in tracefiles from the normal nop instruction. This caused some confusion when debugging the new loop label alignment, as it made it seem like the group-ending nop was not being emitted. In order to make the difference apparent, group-ending nops will now show up as genop in the tracefile. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: d42c647) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
Commit
0d4c1aee0dd797a07a84c31df4c489bd3135f796
by aaronwang0407remove all definitions of deprecated ILOpcode TR::cshl Since most of its denitions are aready removed. I only removed the comments and a few evaluators associate with this ILOpcode. TR::cshl will be completely removed aftet this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 0d4c1ae) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/x/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
Commit
df4c1ca94b25892cd7836cd7e8705ec6714d5444
by aaronwang0407emove all the definitions of deprecated ILOpcode TR::iushl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. TR::iushl will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: df4c1ca) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
Commit
a6e9687be50caed158e24aa9f28f6db8aaee38ba
by aaronwang0407Remove all the definitions of deprecated ILOpCode TR::lushl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of this ILOpCode. Also removes a reference to TR::lushl in function Z::genericLongShiftSingle() TR::lushl will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: a6e9687) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/z/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
0060a4fd3d5f2c21449362c8525df2312c4cfd44
by aaronwang0407Remove all the definitions of deprecated ILOpcode TR::ishfl/TR::lshfl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of these 2 ILOpCode. TR::ishfl and TR::lshfl will be completely removed after this commit. Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 0060a4f) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
5e708287ceb3920be28590ca1a3dc71660b1769b
by aaronwang0407Remove all the definitions of deprecated ILOpcode TR::iushfl/TR::lushfl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of these 2 ILOpCode. TR::iushfl and TR::lushfl will be completely removed after this commit Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 5e70828) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
2f58068082d0148df8dc1bcd96de98f462adf08f
by aaronwang0407Remove all the definitions of deprecated ILOpcode TR::bshfl/TR::sshfl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of these 2 ILOpCode. TR::bshfl and TR::sshfl will be completely removed after this commit Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 2f58068) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
1669582ef410c2d696115f07069b4a63513769b4
by aaronwang0407Remove all the definitions of deprecated ILOpcode TR::bushfl/TR::sushfl Remove all of its definitions, declarations, properties and all other lists/enums that defines the behavior of these 2 ILOpCode. TR::bushfl and TR::sushfl will be completely removed after this commit Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 1669582) |
 | compiler/il/OMRILOpCodeProperties.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/optimizer/ValuePropagationTable.hpp (diff) |
 | compiler/il/OMRILOpCodesEnum.hpp (diff) |
 | compiler/optimizer/OMRSimplifierTableEnum.hpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
|
 | gc/base/SlotObject.hpp (diff) |
|
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.cpp (diff) |
Commit
464c81df01bb86d3a98692f08532e94e6a4aef70
by Dhruv.C.ChopraAdd FE query to add relocations for TR_HelperAddress This query can be overriden by consumer projects such as OpenJ9 depending on project requirements. A use of an older version of this query is also replaced in the X codegen. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 464c81d) |
 | compiler/x/codegen/X86BinaryEncoding.cpp (diff) |
 | compiler/z/codegen/OpMemToMem.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
|
 | port/common/omrstr.c (diff) |
Commit
adfbbf4a336bcfedafe338181ed1df883c0cc145
by haleycao88Apply suggestions from code review Accept suggested and requested changes - Deletion of the test entry and exit reports - Grammar fixes - Added more descriptive test names Issue: #4102 Co-Authored-By: Babneet Singh <sbabneet@ca.ibm.com> Signed-off-by: Haley Cao <haleycao88@hotmail.com> (commit: adfbbf4) |
 | fvtest/porttest/omrsockTest.cpp (diff) |
Commit
64b26da362aede57c8a0b8a13fc756179ea66f9b
by simonameng97Having X86 return true value from 'getSupportsHardwareSQRT()' Having X86 return true value from 'getSupportsHardwareSQRT()', in order to make use of the reduce from `StrictMath.sqrt()` and `Math.sqrt()` to `dsqrt` in `J9RecognizedCallTransformer.cpp`. Signed-off-by: simonameng <simonameng97@gmail.com> (commit: 64b26da) |
 | compiler/x/env/OMRCPU.cpp (diff) |
 | compiler/x/env/OMRCPU.hpp (diff) |
|
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/OMRTreeEvaluator.hpp (diff) |
Commit
c6cd450ae8284ce20754232b18853180db321abe
by maierRemove references to OpenJ9 private linkage J9 private linkage has been largely isolated to OpenJ9 and moved into the J9 namespace. Remove unused references in OMR and for code guarded in project-specific macros reference the appropriate private linkage class in the J9 namespace. Signed-off-by: Daryl Maier <maier@ca.ibm.com> (commit: c6cd450) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/arm/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/arm/codegen/OMRLinkage.cpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/z/codegen/OMRLinkage.hpp (diff) |
 | compiler/x/i386/codegen/IA32SystemLinkage.hpp (diff) |
|
 | compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff) |
Commit
4b9df414f954227e26f9f5e9943de047bf24e4df
by mike.h.zhangChange Dwarf_CU_Context files list from vector to map The current dwarf parser for OSX does not actually prune duplicate file names, which leads to wasted time parsing the file name list later on. Switching the container for the file names from list to map would allow us to remove the duplicate file names from the list and thus improve the performance of ddrgen. On AIX, we keep a separate set for this purpose and this change would also do away with that. We need a map instead of a set so that dwarf_srcfiles returns the file list in the correct order indicated by the DW_AT_decl_file attribute. Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com> (commit: 4b9df41) |
 | ddr/lib/ddr-scanner/dwarf/DwarfFunctions.cpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/AixSymbolTableParser.cpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfParser.cpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfFunctions.hpp (diff) |
Commit
1e71054fb8b396430422735004a22cbfa6dfc058
by rwy0717gtest: Do not reference temporaries past their lifetimes This is an error in gtest, not in OMR. This same error is repeated in a few places, causing different types of bad behaviour on AIX, including breaking almost all logging and option processing. Rather than bind a const mytype& to a temporary result, copy the result into a local, which ensures it is safe to access the value later in the program. When a reference is bound to a temporary value, that reference is invalid when the value dies, at the end of the "full expression" that created it. Using this reference to a temporary in a later expression results in a kind of "use after destruction" error. Fixes: #4537 Signed-off-by: Robert Young <rwy0717@gmail.com> (commit: 1e71054) |
 | third_party/gtest-1.8.0/src/gtest.cc (diff) |
 | third_party/gtest-1.8.0/src/gtest-typed-test.cc (diff) |
Commit
4ef53393bfbe4633ee9d7ca4204f8865f34fb8b0
by konnoAArch64: Handle resolved class pointer in loadRelocatableConstant() This commit adds code to loadRelocatableConstant() in OMRMemoryReference for AArch64, so that it can handle resolved class pointer. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: 4ef5339) |
 | compiler/aarch64/codegen/OMRMemoryReference.cpp (diff) |
|
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
|
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
 | compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff) |
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Instruction.cpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.cpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.hpp (diff) |
 | compiler/aarch64/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/ras/Debug.hpp (diff) |
Commit
d1c6a04fa87950008219a4f407fd77d22d3f18ef
by shubhamv.svPeephole optimizations for BNDCHK evaluator on Z - `CLR` and `BRC` instructions are reduced to `CLRJ` - Reduction happens only if CC is not consumed by any instruction in the immediate window of 5 instructions, in both branch taken and fall through paths - We do not need to check if CC is consumed in branch taken path if branch target is a Snippet Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com> (commit: d1c6a04) |
 | compiler/z/codegen/S390Peephole.cpp (diff) |
Commit
7eb746e4983a5bc9b6ca54dc1307b036c345910d
by rahilFix Bugs in splitPostGRA In post GRA block splitter there are some issue which we found in tests. This commits fixes following two issues. 1. While creating approprite symbol reference for to be uncommoned node to store on temp slot or global register, it checks if that node is representing internal pointer. In such case it needs get corresponding pinning array symref if already exists and need to mark created symref with it. In case if corresponding pinning array symref does not exist then it needs to find it and create new pinning array pointer symref. Issue was, it was only checking variable load nodes for already existing pinning array pointer symref while with splitting block after GRA, we can have regLoad node which already contains it. 2. Second issue we found was altering the Basic Block semantics and adding treetops in between branch treetop and BBEnd treetop in the Basic block. Signed-off-by: Rahil Shah <rahil@ca.ibm.com> (commit: 7eb746e) |
 | compiler/il/OMRBlock.cpp (diff) |
|
 | compiler/z/codegen/S390Peephole.cpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
Commit
20af3adc51eb11802f605cf724eb348f557059dc
by shubhamv.svRemoved API within DAA for which Java implementations do not exist - Removed TR::com_ibm_dataaccess_ByteArrayUtils_trailingZeros - Removed TR::com_ibm_dataaccess_ByteArrayUtils_trailingZerosQuadWordAtATime_ Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com> (commit: 20af3ad) |
 | compiler/compile/ResolvedMethod.cpp (diff) |
|
 | compiler/z/codegen/OMRTreeEvaluator.cpp (diff) |
Commit
601ca0e57fbf61adf4a44d4d13fa6ba26971207a
by salman.ranaFix compile error with Concurrent Scavenger enabled on macOS Removed unused private field `_bytesToScan` from `ConcurrentScavengeTask` to resolve: ``` /ConcurrentScavengeTask.hpp:38:18: error: private field '_bytesToScan' is not used [-Werror,-Wunused-private-field] uintptr_t const _bytesToScan; /**< The number of bytes that this must scan before it will stop trying to do more work */ ``` Signed-off-by: Salman Rana <salman.rana@ibm.com> (commit: 601ca0e) |
 | gc/base/standard/Scavenger.cpp (diff) |
 | gc/base/standard/ConcurrentScavengeTask.hpp (diff) |
Commit
62dadbbd27880353fe73bc854f63810a87f9dba3
by benMake PPCAlignmentNopInstruction::setAlignment private Previously, the PPCAlignmentNopInstruction::setAlignment function had public visibility. However, a point was brought up during code review that there's really not any good reason for this function to be called after an instruction is created and calling it after certain analyses are run could cause problems. Since there's no known valid reason to ever call this function outside the constructors, it is being made private to prevent its accidental misuse. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 62dadbb) |
 | compiler/p/codegen/PPCInstruction.hpp (diff) |
|
 | fvtest/tril/tril/parser.cpp (diff) |
|
 | gc/base/MemoryPoolAddressOrderedListBase.hpp (diff) |
 | gc/base/MemoryPoolHybrid.cpp (diff) |
 | gc/base/MemoryPoolSplitAddressOrderedList.hpp (diff) |
 | gc/base/standard/CompactScheme.cpp (diff) |
 | gc/base/TLHAllocationSupport.cpp (diff) |
 | gc/base/segregated/MemoryPoolAggregatedCellList.hpp (diff) |
 | gc/base/HeapLinkedFreeHeader.hpp (diff) |
 | gc/base/MemoryPoolBumpPointer.hpp (diff) |
 | gc/base/standard/Scavenger.cpp (diff) |
 | gc/base/MemoryPoolAddressOrderedList.cpp (diff) |
 | gc/structs/ForwardedHeader.hpp (diff) |
 | gc/base/MemoryPoolSplitAddressOrderedListBase.cpp (diff) |
 | gc/base/SlotObject.hpp (diff) |
 | gc/base/segregated/SegregatedAllocationInterface.cpp (diff) |
 | gc/base/segregated/MemoryPoolAggregatedCellList.cpp (diff) |
 | gc/base/MemoryPoolAddressOrderedListBase.cpp (diff) |
 | gc/base/standard/ConcurrentSweepScheme.cpp (diff) |
 | gc/base/MemoryPool.hpp (diff) |
 | gc/base/MemoryPoolSplitAddressOrderedList.cpp (diff) |
 | gc/base/MemoryPoolSplitAddressOrderedListBase.hpp (diff) |
 | gc/base/MemoryPoolBumpPointer.cpp (diff) |
 | gc/base/segregated/SweepSchemeSegregated.hpp (diff) |
 | gc/base/standard/CopyScanCacheChunkInHeap.cpp (diff) |
Commit
fb355edcc0085a3a32f0ccefcde2805cf7bcbb0b
by leonardo2718Add findOr{Create,Fabricate}ShadowSymbol functions Add findOrCreateShadowSymbol function and findOrFabricateShadowSymbol to accept a TR_OpaqueClassBlock. These will be needed for supporting value types. The behavior of these are project specific, so their implementation in OMR is empty. Downstream projects should override these as needed. Co-authored-by: Yiling Han <Yiling.Han@ibm.com> Signed-off-by: Leonardo Banderali <leonardo2718@protonmail.com> (commit: fb355ed) |
 | compiler/compile/OMRSymbolReferenceTable.cpp (diff) |
 | compiler/compile/OMRSymbolReferenceTable.hpp (diff) |
|
 | compiler/z/codegen/BinaryEvaluator.cpp (diff) |
Commit
290fef8bfbf433c8477d0d8c656da3f170a68ef0
by salman.ranaFix issue with GC during idle cycle Fix for https://github.com/eclipse/openj9/issues/7679 - Forced system gc resulting from idleness now ignores any uncompleted concurrent global cycle by aborting it and restarting in STW. - Introduced new abort reason for verbose reporting purposes: `ABORT_COLLECTION_IDLE_GC` Signed-off-by: Salman Rana <salman.rana@ibm.com> (commit: 290fef8) |
 | gc/base/standard/ConcurrentGC.cpp (diff) |
 | gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff) |
 | include_core/omrgcconsts.h (diff) |
Commit
76484b946bf0de9f5f779a8cd29d68081c9100d5
by rahilFix missing conversion in splitPostGRA There was an issue with splitPostGRA where it was creating temp slot for the node which was either of Int8 or Int16 type. To maintain alignment, it needed conversion to Int32 type before storing it into memory. splitPostGRA was missing this conversion and which was causing issues on Z where it was storing a byte into memory without conversion and then loads a byte from that slot causing us to load most significant byte which contains 0 instead of the original value. This commit adds the missing conversion piece of code for such nodes. Signed-off-by: Rahil Shah <rahil@ca.ibm.com> (commit: 76484b9) |
 | compiler/il/OMRBlock.cpp (diff) |
|
 | compiler/aarch64/codegen/GenerateInstructions.cpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.hpp (diff) |
 | compiler/ras/Debug.hpp (diff) |
 | compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff) |
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
Commit
313b2fa41bbbc397bb1178ad1e65e4111fbddde3
by Dhruv.C.ChopraDon't default initialize isRelocatable boolean This boolean will now be used to represent if a relocation is needed for remote as well as AOT compiles. Doing so consolidates the two questions that the routine needs to answer. Since OMR is not aware of remote compilations, the decision on whether a relocation is required will not have to be made explicitly by the caller. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 313b2fa) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
|
 | doc/compiler/README |
 | doc/compiler/README.md |
Commit
538fd9b4ad17515bf47ef85073827feac84ea9a1
by amicicCompact trigger adjustment Dark matter and paging compact triggers currently only compare potential free memory gains vs current free memory (with aim to reduce Global GC frequency). While trigger thresholds are set rather high, they can still easily trigger with Tenure being fairly full. To account for the cost of work by doing the compact, the gains are not just compared with total free memory but with total heap size, too. That alone would make the trigger way less probable to occur, so as a compromise: the weight of total heap that account into the formula is set to 50%, and thresholds are cut by a factor of 2 or so. Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com> (commit: 538fd9b) |
 | gc/base/standard/ParallelGlobalGC.cpp (diff) |
 | gc/base/GCExtensionsBase.hpp (diff) |
|
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
Commit
a12a2d004dc1a3ede2f33d34c298d02364c3d7d9
by pushkar.bettadpurFixes bug found when assigning a new real register When we assign a new real register to a virtual register (for GPRs), we were not updating the virtual register to hold its new real register. This led to a discrepancy between the real->virtual and virtual->real mapping between registers. This commit ensures that the virtual register now knows of its new real register. Signed-off-by: Pushkar Bettadpur <pushkar.bettadpur@gmail.com> (commit: a12a2d0) |
 | compiler/z/codegen/OMRMachine.cpp (diff) |
Commit
ecc077e08ed099bb13ac55311bafcda6806cc986
by devinnCMake: Add ability to handle split debug info Add new flag OMR_SEPARATE_DEBUG_INFO. If set, debug info for a target is copied into <target_file>.dbg, and debug info from <target_file> is stripped. Signed-off-by: Devin Nakamura <devinn@ca.ibm.com> (commit: ecc077e) |
 | cmake/modules/platform/toolcfg/xlc.cmake (diff) |
 | cmake/config.cmake (diff) |
 | cmake/modules/OmrDDRSupport.cmake (diff) |
 | cmake/modules/OmrPlatform.cmake (diff) |
 | cmake/modules/platform/toolcfg/gnu.cmake (diff) |
|
 | compiler/env/CMakeLists.txt (diff) |
 | compiler/codegen/FrontEnd.cpp (diff) |
 | compiler/env/FrontEnd.cpp |
 | compiler/codegen/CMakeLists.txt (diff) |
Commit
8588a6e9266ab2cfe72844d9926a097a61709ca7
by mhaque5Move NullChkEvaluators to OpenJ9 for ARM, Power, Z and Aarch64 codegen This commit moves the following functions from OMR to OpenJ9 for ARM, Power, Z and Aarch64 codegen implementations: - NULLCHKEvaluator - resolveAndNULLCHKEvaluator - evaluateNULLCHKWithPossibleResolve All these functions are moved to OpenJ9 and are no longer needed in OMR. Fixes: #3530 Signed-off-by: Md. Ariful Haque <mhaque5@unb.ca> (commit: 8588a6e) |
 | compiler/arm/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/z/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/arm/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
|
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
Commit
4b5d9659b7b37009f5c43542165e2aa955c533ed
by maierShare implementation to re-reserve trampolines on code cache switch Each code generator duplicates logic to re-reserve a trampoline for a call target if the code cache is switched between the time the trampoline is first reserved (likely instruction selection) and binary encoding. The logic is nearly the same in all cases. Provide a common version that is shared by all code generators. Signed-off-by: Daryl Maier <maier@ca.ibm.com> (commit: 4b5d965) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/X86BinaryEncoding.cpp (diff) |
 | compiler/arm/codegen/ARMBinaryEncoding.cpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
Commit
d54781fec202208c9919b0a9388b45df2904693f
by konnoAArch64: Fix code generation for adr and adrp instructions This commit fixes the wrong encoding of the immediate value for "adr" and "adrp" instructions. Those two instructions encode the lower 2 bits of the immediate value in bits 29-30 of the instruction word, and the upper 19 bits of the immediate value in bits 5-23 of the instruction word. There was a mistake with masking and shifting the upper 19 bits. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: d54781f) |
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
|
 | gc/base/HeapLinkedFreeHeader.hpp (diff) |
Commit
6de2de38c42421a0507464c3919af2c701af7b62
by maierBreak unneeded class dependencies on OMRLinkage Do not include unnecessary header files to prevent downstream breakages. Introduce include directives and forward declarations as appropriate to compensate for removing header files from the extensible OMRLinkage.hpp Signed-off-by: Daryl Maier <maier@ca.ibm.com> (commit: 6de2de3) |
 | compiler/x/codegen/OMRLinkage.hpp (diff) |
 | compiler/arm/codegen/OMRLinkage.cpp (diff) |
 | compiler/z/codegen/snippet/XPLINKCallDescriptorSnippet.cpp (diff) |
 | compiler/z/codegen/snippet/XPLINKCallDescriptorSnippet.hpp (diff) |
 | compiler/aarch64/codegen/OMRLinkage.hpp (diff) |
 | compiler/aarch64/codegen/ARM64SystemLinkage.cpp (diff) |
 | compiler/arm/codegen/OMRLinkage.hpp (diff) |
 | compiler/z/codegen/OMRLinkage.hpp (diff) |
 | compiler/x/i386/codegen/IA32SystemLinkage.hpp (diff) |
 | compiler/x/codegen/OMRLinkage.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.hpp (diff) |
 | compiler/codegen/OMRLinkage.hpp (diff) |
 | compiler/arm/codegen/ARMSystemLinkage.cpp (diff) |
 | compiler/x/amd64/codegen/AMD64SystemLinkage.hpp (diff) |
Commit
717082e8167571cba2a6980a750ff06cc189fc8a
by sbabneetOnly unblock an asynchronous signal if it is used Currently, all supported asynchronous signals are unblocked during startup. A signal is unblocked even when a signal handler is not installed for it. This conflicts with an OMR consumer, who wants to block a set of signals. The OMR consumer blocks a set of signals but the OMR signal library unblocks those signals at startup. OMR signal library should only unblock a signal if a signal handler is registered for it. In other words, a signal should not be unblocked if it is not used i.e. a signal handler is not registered for it. Fixes: https://github.com/eclipse/openj9/issues/7749 Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 717082e) |
 | port/unix/omrsignal.c (diff) |
Commit
e01ecad0815c09b3e43fde2403ab04dd3e9e84db
by Dhruv.C.ChopraAdd new overload for loadAddressConstant This new overload allows the consumer of the API to determine if a relocation record is needed. The overload is added because it will allow all consumers of this API to use the new definition of loadAddressConstant, while not breaking anything in downstream projects. Once the new definition has been accepted by downstream projects, they can begin to use the new API as well since if they choose to do so. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: e01ecad) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
|
 | compiler/aarch64/codegen/ARM64Instruction.cpp (diff) |
 | compiler/aarch64/codegen/OMRMemoryReference.hpp (diff) |
 | compiler/aarch64/codegen/OMRMemoryReference.cpp (diff) |
|
 | thread/common/threadhelpers.cpp (diff) |
|
 | thread/common/threadhelpers.cpp (diff) |
|
 | thread/common/threadhelpers.cpp (diff) |
|
 | thread/common/threadhelpers.cpp (diff) |
|
 | thread/common/threadhelpers.cpp (diff) |
Commit
2339b26c5f82c5f6f5a5334493bfa36ec61c3630
by mnoorRelocate getMonClass and addMonClass to OpenJ9 The OMR::CodeGenerator functions- getMonClass and addMonClass are relocated to OpenJ9 CodeGenerator and removed from OMR. The changes also include the array- _monitorMapping moving from OMR to OpenJ9. Closes: GitHub issue #1869 Signed-off-by: Md. Alvee Noor <mnoor@unb.ca> (commit: 2339b26) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
|
 | cmake/modules/FindLibElf.cmake (diff) |
|
 | gc/base/ObjectHeapIteratorAddressOrderedList.hpp (diff) |
 | gc/base/ObjectHeapIteratorAddressOrderedList.cpp (diff) |
 | gc/base/MarkingScheme.cpp (diff) |
 | gc/structs/ForwardedHeader.hpp (diff) |
 | example/glue/ScavengerRootScanner.hpp (diff) |
 | gc/base/standard/Scavenger.cpp (diff) |
 | gc/base/MemcheckWrapper.cpp (diff) |
 | gc/structs/ForwardedHeader.cpp (diff) |
 | example/glue/ScavengerDelegate.cpp (diff) |
|
 | port/omrportpriv.h (diff) |
 | include_core/omrport.h (diff) |
 | port/common/omrsock.c (diff) |
|
 | compiler/ilgen/OMRTypeDictionary.hpp (diff) |
 | compiler/ilgen/OMRTypeDictionary.cpp (diff) |
Commit
9d712f37d05dc5e9c7bed58a1b33ca6021e0efa5
by keithcAvoid buffer overflow in expandString() The test in the old code (formatCursor >= MAX_IMAGE_PATH_LENGTH - 1) only ensured there was room for one more character (plus the NUL-terminator) in any iteration of the loop and thus the expansion of '%p', '%d' or '%t' might not fit. This was highlighted by a warning issued by gcc 9. Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: 9d712f3) |
 | omrtrace/omrtracemisc.cpp (diff) |
Commit
448e32e4f71fe01f024f862f2819a2f02c3a21f4
by keithcAvoid buffer overflow in count_threads() strncpy() does not add a NUL-terminator if not part of the specified segment of the source, so if the file name was more than 11 characters long, buf might not be NUL-terminated and the following strcat() may write beyond the end of the buffer. This was highlighted by a warning issued by gcc 9. Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: 448e32e) |
 | port/unix/omrintrospect.c (diff) |
Commit
7a932adea7e4dafd7f0feae84792cbab6d139af6
by keithcEnsure strings are NUL-terminated in omrosdump_helpers strncpy() does not add a NUL-terminator if not part of the specified segment of the source, so the result may not be NUL-terminated; use OMR's str_printf() instead. Affected functions are deriveCoreFileName() and renameDump(). This was highlighted by a warning issued by gcc 9. Also fixed typo in corePatternFormat parameter name. Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: 7a932ad) |
 | port/linux/omrosdump_helpers.c (diff) |
Commit
b399cebf851a22456521e11087ba16dc4faf00aa
by keithcEnsure string is NUL-terminated in omrsysinfo_get_OS_type() strncpy() does not add a NUL-terminator if not part of the specified segment of the source, so the result may not be NUL-terminated. Even though the buffer is explicitly NUL-terminated, the compiler still issues a warning: use memcpy() instead. This was highlighted by a warning issued by gcc 9. Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: b399ceb) |
 | port/unix/omrsysinfo.c (diff) |
Commit
5a11f35cdb96623dc16e096a616efdc993798e5e
by keithcAvoid compiler warning in omrvmem_numa_get_node_details() Even though strncat() always adds a NUL-terminator, gcc 9 issues a warning about its use: use OMR's str_printf() function instead. Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: 5a11f35) |
 | port/linux/omrvmem.c (diff) |
Commit
7e87e0c8c20d532cbeec27e3d14b7ef5b86d1f74
by Dhruv.C.ChopraIntroduce new query to replace JITServer checks This commit introduces a new query, canEmitDataForExternallyRelocatableInstructions, that can be used to determind if data can be emitted safely in an instruction that is the target of a relocation record. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: 7e87e0c) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
|
 | compiler/aarch64/codegen/FPTreeEvaluator.cpp (diff) |
|
 | compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
Commit
f937c1bfb5356995d142a4e12d899d01cb1c303d
by leonardo2718Remove stale comment The comment was incorrect as the VM is *not* called to do lowering. Furthermore, it provides no additional insight into what the code is doing beyond what the function name already provides. Removing the comment therefore seems appropriate. Signed-off-by: Leonardo Banderali <leonardo2718@protonmail.com> (commit: f937c1b) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/codegen/CodeGenPrep.cpp (diff) |
|
 | compiler/control/OMROptions.hpp (diff) |
 | compiler/control/OMROptions.cpp (diff) |
|
 | compiler/codegen/CodeGenPrep.cpp (diff) |
Commit
424b0a5d10e84cbd801c8f46482d0b56d9d52cda
by ajcraikAdd eaEscapeHelperSymbol The OpenJ9 Escape Analysis optimization currently overloads the meaning of the OSR helper callees as part of its analysis. This change introduces a new non-helper symbol for this optimization pass to use to avoid overloaded meanings and the resultant confustion in the codebase. Signed-off-by: Andrew Craik <ajcraik@ca.ibm.com> (commit: 424b0a5) |
 | compiler/compile/OMRSymbolReferenceTable.cpp (diff) |
 | compiler/ras/Debug.cpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/Aliases.cpp (diff) |
 | compiler/compile/OMRSymbolReferenceTable.hpp (diff) |
|
 | compiler/il/OMRILOps.hpp (diff) |
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
 | compiler/optimizer/OMRSimplifierHelpers.cpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
|
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
Commit
2c0db864990826204a89974b987dea11f8d6726d
by aaronwang0407Fatal assert any creation of node with deprecated unsigned opcode of equality Add TR_ASSERT_FATAL to ensure there is no more creatation or recreation of node with deprecated opcode in the equality compare and equality compare branch category Signed-off-by: Bohao(Aaron) Wang <aaronwang0407@gmail.com> (commit: 2c0db86) |
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
|
 | compiler/il/OMRNode.hpp (diff) |
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
Commit
abf241cac27b29a6663812b68df0793e43dfaeb4
by Dmitri_PivkineTrust maps file parser if no errors occur If OMRPORT_VMEM_ALLOC_QUICK is used for virtual memory allocation we are trying to find available memory interval by scanning maps file in findAvailableMemoryBlockNoMalloc(). In case if it returns NULL (memory interval with requested parameters is not available) we have choice to trust this result and fail memory allocation request or continue with slow allocation path to try any possible address range one by one. In the past we noticed that sometimes (with unknown conditions unfortunately) parser returns NULL, however slow path was able to allocate memory eventually. So current code always execute slow path if parsing fails. It creates possible delays in JVM startup time. Currently parser in findAvailableMemoryBlockNoMalloc() can not differentiate between cases parsing was complete with no error but no memory range found or an error occur at the time of parsing. I believe in first case we can trust parser results and fail allocation request immediately. In second case however call of slow allocation path is necessary. So I am suggesting to add new output parameter that would report about error occur at the parsing time. Currently parser can not receive EOF condition because omrfile_read() would mask it by returning -1. I added a recognition of EOF to parser. Also I added a number of trace points to simplify analysis in case of the failure in future. Please note that these trace points at the moment because this call occur early in startup and Trace Engine has not been initialized yet. However we are planning to fix this problem in the future so these trace points become useful. Also (by request from Service and have in mind we do not know why it failed exactly) I added possibility to revert new behaviour to old one by introducing a new key for Port Library. It will be used in case of emergency to return back to old mode if this feature still be not reliable enough. Signed-off-by: Dmitri Pivkine <Dmitri_Pivkine@ca.ibm.com> (commit: abf241c) |
 | include_core/omrport.h (diff) |
 | port/unix_include/omrportpg.h (diff) |
 | port/common/omrport.tdf (diff) |
 | port/linux/omrvmem.c (diff) |
 | port/common/omrportcontrol.c (diff) |
Commit
bd6938751b3cbf9defe7406e6ee41ca80268a71b
by rwy0717Move the calls to AC_PROG_CC/CXX higher Autoconf has a rudimentary macro-prerequisite feature, which allows macros and tests to automatically invoke dependencies. Because of this system, AC_PROG_CC is being automatically invoked in the middle of a check for the size of void*, which is much earlier than where we manually invoke the macros. For clarity, I'm moving the calls to AC_PROG_CC/CXX higher, to the beginning of the "build environment" section of the script, and a few lines before the sizeof_void_p test. Signed-off-by: Robert Young <rwy0717@gmail.com> (commit: bd69387) |
 | configure (diff) |
 | configure.ac (diff) |
|
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
Commit
37bcd6a8cc27a3c28d769e59cd38d016cd9ad129
by mhaque5Move arithmeticNeedsLiteralFromPool function from OMR to OpenJ9 This commit moves arithmeticNeedsLiteralFromPool function from OMR to OpenJ9. arithmeticNeedsLiteralFromPool is not used in OMR, but it is used in OpenJ9 for Z codegen implementation. Fixes: #1870 Signed-off-by: Md. Ariful Haque <mhaque5@unb.ca> (commit: 37bcd6a) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
Commit
cb5ee35fd63a0e08912ef7305421914cd262aa07
by maierRemove unused features from S390LabelInstruction The following are not used in OMR nor any known downstream project. * `targetReg` parameter from constructors * `_handle` field * PreservedForListing flag Signed-off-by: Daryl Maier <maier@ca.ibm.com> (commit: cb5ee35) |
 | compiler/z/codegen/S390Instruction.hpp (diff) |
Commit
f492938b6bef3ae3bff34ffdd4c9cc31d75d4455
by jan.vranyAdd new 'MinimalTest' suite to compilertriltest. This suite contains a really minimal tests such as "return 42" or "return arg + 10". These tests are useful when porting compiler to a new architecture, such as RISC-V. Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz> Signed-off-by: Boris Shingarov <shingarov@labware.com> (commit: f492938) |
 | fvtest/compilertriltest/MinimalTest.cpp |
 | fvtest/compilertriltest/CMakeLists.txt (diff) |
|
 | compiler/z/codegen/OMRRegisterDependency.hpp (diff) |
 | compiler/z/codegen/OMRRegisterDependency.cpp (diff) |
|
 | compiler/z/codegen/OMRInstruction.cpp (diff) |
 | compiler/z/codegen/OMRRegisterDependency.hpp (diff) |
 | compiler/z/codegen/OMRRegisterDependency.cpp (diff) |
|
 | compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/ARM64OutOfLineCodeSection.cpp (diff) |
|
 | compiler/aarch64/codegen/ARM64SystemLinkage.cpp (diff) |
 | compiler/aarch64/codegen/OMRLinkage.hpp (diff) |
Commit
9056b3bbce225339c52c5c6334e84506cc0b8ad7
by saiakiAArch64: Implement OMR::ARM64::RegisterDependencyConditions::clone - This commits adds implementation of `OMR::ARM64::RegisterDependencyConditions::clone`. - It adds optional arguments to `clone` that enables cloning only pre/post part of original dependency conditions. - It adds utility methods `clonePre` and `clonePost` which call `clone`. Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com> (commit: 9056b3b) |
 | compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff) |
 | compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff) |
Commit
0b7514185196bf2e5311c268e43c0e06ecbe3587
by zlwangFix JNI performance regression This is to check in the OMR portion ... It was caused by changes committed for OpenJ9 issue #4893. When JNILinkage is not set on the method symbol anymore, OutOfLine performCall eventully evaluated it through PrivateLinkage and stuck in interpreter. The fundamental reason is that a new node is created for performCall but the isPreparedForJNI flag is not copied over and performCall doesn't get the linkage right. Resolve: #4132 Signed-off-by: Julian Wang <zlwang@ca.ibm.com> (commit: 0b75141) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/PPCOutOfLineCodeSection.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.hpp (diff) |
Commit
bac4aa2f85f723081b780f859c8acca2c032d758
by keithcDDR: add support for xlc/xlclang version 16 * add support for continued STABS entries * add support for C++ ellipses parameter types * consider types '__\d+' un-named on AIX * define DW_FORM_block* constants * ensure __IBMCPP_TR1__ is always defined on AIX (but only do so in config.hpp) * extract function to get value of DW_AT_const_value attribute * fix handling of pointer to member types - skip past optional 'virtual' and 'multiple' base specifications * fix handling of enum literal values (they are expressed in decimal not hex in STABS entries) * fix recognition of vtable pointers (xlclang defines __GNUC__) * handle anonymous typedefs * ignore static fields (xlc 13 doesn't produce STABS entries for them) * don't return NULL for unknown builtin types * fail if we can't decode a STABS string * define macro ddr_constant(name, value) - for handling anonymous nested types; expands to static enum { name = value } ddr_ref_ ## name * recognize anonymous fields: '#bit_field_\d+' * clean up: - pass strings by reference - remove useless const modifier for primitive type parameters - remove redundant test - streamline creation of dump command - remove unused function shiftDecimal() - whitespace (tabs should only appear at the beginning of a line) - extract addRefToPopulate() - issue error if reference resolution fails - print error and exit on bad type reference * fix handling of C++11 versus TR1 - clean up access to unordered_map - remove definition of unused macro: OMR_HAVE_TR1 - remove useless using declarations (hash, runtime_error) Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: bac4aa2) |
 | ddr/include/ddr/scanner/pdb/PdbScanner.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/AixSymbolTableParser.cpp (diff) |
 | ddr/include/ddr/std/unordered_map.hpp (diff) |
 | include_core/omr.h (diff) |
 | ddr/lib/ddr-blobgen/java/genBlobJava.cpp (diff) |
 | gc/base/standard/CompactScheme.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfFunctions.cpp (diff) |
 | ddr/include/ddr/scanner/dwarf/AixSymbolTableParser.hpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfScanner.hpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfFunctions.hpp (diff) |
 | ddr/tools/ddrgen/ddrgen.cpp (diff) |
 | ddr/include/ddr/config.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp (diff) |
|
 | buildenv/jenkins/jobs/pull-requests/PullRequest-aix_ppc-64 (diff) |
 | buildenv/jenkins/jobs/builds/Build-aix_ppc-64 (diff) |
|
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
 | compiler/arm/codegen/ConstantDataSnippet.cpp (diff) |
 | compiler/control/OMROptions.hpp (diff) |
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
|
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
Commit
cb2aa35d46e6f3901cb6e829dc95dedee343caa8
by sbabneetomrthread_mcs_node_free should not assert if mcsNode is NULL If mcsNode is NULL, omrthread_mcs_node_free should do nothing. An assertion would terminate the application, which is undesirable for a memory free operation. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: cb2aa35) |
 | thread/common/threadhelpers.cpp (diff) |
|
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
Commit
cad11469a62a00730983600780ffcb00be2cbdd8
by sbabneetUpdate monitor_notify_three_tier to use the MCS lock J9THREAD_MONITOR_SPINLOCK_EXCEEDED is not used with the MCS lock. monitor_notify_three_tier is updated to avoid using J9THREAD_MONITOR_SPINLOCK_EXCEEDED with the MCS lock. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: cad1146) |
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
Commit
ffa97f0699a3a1bb5bbbadc625dc6cbb49225d41
by sbabneetUpdate postForkResetMonitors to work with the MCS lock When the monitor state is set to unowned, queueTail is set to NULL in order to signify the unowned state of the MCS lock. J9THREAD_MONITOR_SPINLOCK_EXCEEDED is not used with the MCS lock. postForkResetMonitors is updated to avoid usage of J9THREAD_MONITOR_SPINLOCK_EXCEEDED with the MCS lock. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: ffa97f0) |
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
|
 | thread/common/omrthread.c (diff) |
Commit
615b0b42a76a806fe53ff4fd4dc4e421ec2cf31a
by sbabneetRestrict the number of threads allowed to spin per monitor with MCS lock The number of threads allowed to simultaneously spin per monitor, which uses the MCS lock, is restricted to the number of logical CPUs available on the machine. Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com> (commit: 615b0b4) |
 | thread/common/threadhelpers.cpp (diff) |
|
 | cmake/caches/Appveyor.cmake (diff) |
 | cmake/caches/Travis.cmake (diff) |
|
 | ddr/include/ddr/scanner/dwarf/DwarfFunctions.hpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfScanner.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/AixSymbolTableParser.cpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp (diff) |
Commit
1804d0f6a676366910063fa405a8e1f295b4fc04
by konnoAArch64: Implement tableEvaluator This commit implements tableEvaluator() for AArch64. Co-authored-by: KONNO Kazuhiro konno@jp.ibm.com Co-authored-by: Aaron Graham aaron.graham@unb.ca Co-authored-by: Md. Mahbubur Rahman mrahma15@unb.ca Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: 1804d0f) |
 | compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff) |
|
 | compiler/runtime/Helpers.inc (diff) |
|
 | compiler/codegen/ELFGenerator.hpp (diff) |
 | compiler/codegen/ELFGenerator.cpp (diff) |
|
 | fvtest/compilertest/build/files/common.mk (diff) |
 | jitbuilder/build/files/common.mk (diff) |
 | compiler/codegen/FrontEnd.hpp |
 | compiler/codegen/FrontEnd.cpp |
Commit
a31fb118f77834c4d691971d98087969b17aa480
by Dhruv.C.ChopraRework accessStaticItem in Power's OMRMemoryReference This commit reorganizes this routine to broaden the scope of when relocatable code can be generated. We now use front end queries to determine when a relocatable instruction needs to be generated. This is needed in cases where we are doing a remote compile. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: a31fb11) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
|
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
Commit
fa3a153500269ef926dd54d6824f309ab4f9e039
by Dhruv.C.ChopraDon't use needRelocationsForStatics query when redundant In some situations, this query was being used in addition to another query that would also return the same answer. Since it doesn't make sense to use this query anymore (as the other one is more appropriate given the data type), this commit removes uses of such queries. Additionally, use of the new needRelocationsForCurrentMethodPC query is added for symbol->isCompiledMethod data types. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: fa3a153) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
|
 | include_core/omr.h (diff) |
 | ddr/include/ddr/scanner/dwarf/AixSymbolTableParser.hpp (diff) |
 | ddr/include/ddr/std/unordered_map.hpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfScanner.hpp (diff) |
 | ddr/lib/ddr-blobgen/java/genBlobJava.cpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfFunctions.hpp (diff) |
 | ddr/include/ddr/scanner/pdb/PdbScanner.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/AixSymbolTableParser.cpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfFunctions.cpp (diff) |
 | ddr/tools/ddrgen/ddrgen.cpp (diff) |
 | gc/base/standard/CompactScheme.hpp (diff) |
 | ddr/include/ddr/config.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp (diff) |
Commit
a3342a38f57c122fb442923837ec6cee655ae2a1
by Dhruv.C.ChopraDisable PPC TOC if TR_DisableTOC option is set This commit makes the allocateChunk and lookup methods inside the TR_PPCTableOfConstants class return PTOC_FULL_INDEX if the TR_DisableTOC compiler option is set. Doing so will prevent the power code generator from ever generating code that uses the TOC, effectively disabling the TOC. Adding this option here allows downstream projects to easily disable TOC when needed. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: a3342a3) |
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/PPCTableOfConstants.cpp (diff) |
|
 | compiler/aarch64/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
Commit
05019a0d91bff85e9a45aed9018fc10964af797d
by rwy0717Do not remove config.guess/sub in distclean We check in both config.guess and config.sub. There's no need to delete these files as part of distclean. They shouldn't be considered generated or external dependencies, they are a part of our source code. Signed-off-by: Robert Young <rwy0717@gmail.com> (commit: 05019a0) |
 | run_configure.mk (diff) |
|
 | buildenv/jenkins/jobs/pull-requests/PullRequest-linux_x86-64_cmprssptrs (diff) |
 | scripts/build-on-travis.sh (diff) |
 | buildenv/jenkins/jobs/builds/Build-linux_x86-64_cmprssptrs (diff) |
|
 | util/pool/CMakeLists.txt (diff) |
Commit
b1a949df850a0f3f0565354e8b102a8af3e1b82d
by devinnCMake: Link ddr tooling against omr thread/port libraries Its not gauranteed that consumers of omr will export the symbols we need from their versions of the port and thread libraries Signed-off-by: Devin Nakamura <devinn@ca.ibm.com> (commit: b1a949d) |
 | ddr/tools/ddrgen/CMakeLists.txt (diff) |
 | ddr/tools/blob_reader/CMakeLists.txt (diff) |
|
 | include_core/omrversionstrings.cmake.h.in |
 | omrcfg.CMakeTemplate.h |
 | CMakeLists.txt (diff) |
 | omrversionstrings.CMakeTemplate.h |
 | include_core/omrcfg.cmake.h.in |
|
 | include_core/omrcfg.cmake.h.in (diff) |
Commit
02c7167d05e9b3fca10d33c089246978030eb452
by konnoAArch64: Allow negative immediate offset for memory access This commit rewrites the instruction "ldrimmw" (12-bit unsigned offset) to "ldurw" (9-bit signed offset) when a negative value is used as the offset. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: 02c7167) |
 | compiler/aarch64/codegen/OMRMemoryReference.cpp (diff) |
Commit
bf87314933eff51d97178bc23fc3be662a661574
by jan.vranyRISC-V: Add RISC-V compiler backend This commit adds a compiler backend for RISC-V ISA. The code has been tested on both QEMU and real hardware, a SiFive HiFive Unleashed development board. Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz> Signed-off-by: Boris Shingarov <shingarov@labware.com> (commit: bf87314) |
 | compiler/riscv/codegen/RVInstruction.cpp |
 | compiler/riscv/codegen/TreeEvaluatorTable.hpp |
 | compiler/riscv/codegen/Linkage.hpp |
 | compiler/runtime/Runtime.hpp (diff) |
 | compiler/riscv/codegen/RealRegisterEnum.hpp |
 | compiler/riscv/codegen/OMRSnippet.hpp |
 | compiler/env/OMRCPU.hpp (diff) |
 | compiler/riscv/codegen/OMRRealRegister.cpp |
 | compiler/riscv/codegen/RVOutOfLineCodeSection.hpp |
 | compiler/ras/Debug.hpp (diff) |
 | compiler/riscv/codegen/OMRInstructionKindEnum.hpp |
 | compiler/riscv/env/OMREnvironment.hpp |
 | compiler/riscv/codegen/MemoryReference.hpp |
 | compiler/riscv/codegen/OMRTreeEvaluator.cpp |
 | compiler/env/defines.h (diff) |
 | compiler/riscv/codegen/OMRMachine.cpp |
 | compiler/riscv/codegen/OMRRegisterDependency.cpp |
 | compiler/riscv/codegen/OMRLinkage.cpp |
 | compiler/riscv/codegen/UnaryEvaluator.cpp |
 | compiler/riscv/codegen/OMRMachine.hpp |
 | compiler/riscv/codegen/OMRRegisterDependencyStruct.hpp |
 | compiler/riscv/CMakeLists.txt |
 | compiler/runtime/Helpers.inc (diff) |
 | compiler/riscv/codegen/OMRCodeGenerator.cpp |
 | compiler/riscv/codegen/OMRCodeGenerator.hpp |
 | compiler/riscv/codegen/OMRInstruction.cpp |
 | compiler/riscv/codegen/RVDebug.cpp |
 | doc/compiler/riscv/Building.md |
 | compiler/riscv/codegen/InstOpCode.hpp |
 | compiler/riscv/codegen/OMRInstOpCodeEnum.hpp |
 | compiler/riscv/codegen/OMRLinkage.hpp |
 | compiler/riscv/codegen/PseudoRegisterEnum.hpp |
 | compiler/riscv/codegen/Instruction.hpp |
 | compiler/riscv/codegen/OMRMemoryReference.cpp |
 | compiler/riscv/codegen/OMRTreeEvaluator.hpp |
 | compiler/riscv/codegen/RVSystemLinkage.hpp |
 | compiler/riscv/codegen/OMRRealRegister.hpp |
 | compiler/riscv/codegen/OMRInstruction.hpp |
 | compiler/riscv/codegen/OpBinary.cpp |
 | compiler/riscv/codegen/RealRegister.hpp |
 | compiler/riscv/codegen/RVSystemLinkage.cpp |
 | compiler/riscv/codegen/OMRRegisterDependency.hpp |
 | compiler/riscv/codegen/RVInstruction.hpp |
 | compiler/riscv/env/OMRDebugEnv.cpp |
 | compiler/riscv/codegen/BinaryEvaluator.cpp |
 | compiler/riscv/codegen/ControlFlowEvaluator.cpp |
 | compiler/riscv/codegen/GenerateInstructions.cpp |
 | compiler/riscv/codegen/FPTreeEvaluator.cpp |
 | compiler/riscv/codegen/RVOutOfLineCodeSection.cpp |
 | compiler/riscv/codegen/riscv-regs.h |
 | compiler/riscv/codegen/OMRInstOpCode.hpp |
 | compiler/riscv/codegen/OMRRegister.hpp |
 | compiler/riscv/codegen/RegisterDependency.hpp |
 | doc/compiler/r/Building.md |
 | compiler/riscv/codegen/RealRegisterMaskEnum.hpp |
 | compiler/env/OMRCPU.cpp (diff) |
 | compiler/riscv/codegen/GenerateInstructions.hpp |
 | compiler/riscv/env/OMRDebugEnv.hpp |
 | compiler/riscv/codegen/OMRMemoryReference.hpp |
 | compiler/ras/Debug.cpp (diff) |
 | compiler/riscv/codegen/OMRSnippet.cpp |
|
 | compiler/env/defines.h (diff) |
 | cmake/modules/platform/arch/riscv.cmake (diff) |
 | example/glue/configure_includes/configure_linux_riscv.mk |
 | omrmakefiles/confighelpers.m4 (diff) |
 | CONTRIBUTING.md (diff) |
 | tools/configure (diff) |
 | run_configure.mk (diff) |
 | configure (diff) |
 | configure.ac (diff) |
|
 | compiler/compile/OMRCompilation.cpp (diff) |
 | compiler/compile/OMRCompilation.hpp (diff) |
|
 | compiler/x/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/arm/codegen/ConstantDataSnippet.cpp (diff) |
|
 | compiler/z/codegen/OMRInstruction.cpp (diff) |
 | compiler/z/codegen/OMRLinkage.cpp (diff) |
 | compiler/optimizer/LoopReducer.cpp (diff) |
 | compiler/arm/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/z/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/optimizer/GeneralLoopUnroller.cpp (diff) |
 | compiler/codegen/CodeGenGC.cpp (diff) |
 | compiler/x/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRLinkage.cpp (diff) |
 | compiler/x/codegen/X86BinaryEncoding.cpp (diff) |
 | compiler/z/codegen/OpMemToMem.cpp (diff) |
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/p/codegen/PPCBinaryEncoding.cpp (diff) |
 | compiler/arm/codegen/OMRLinkage.cpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
 | compiler/z/codegen/OMRSnippet.cpp (diff) |
 | compiler/x/codegen/IntegerMultiplyDecomposer.cpp (diff) |
 | compiler/x/codegen/X86Debug.cpp (diff) |
 | compiler/optimizer/LocalAnticipatability.cpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/OMRX86Instruction.cpp (diff) |
 | compiler/x/codegen/X86SystemLinkage.cpp (diff) |
 | compiler/arm/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/z/codegen/S390OutOfLineCodeSection.cpp (diff) |
 | compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/optimizer/ValuePropagationCommon.cpp (diff) |
 | compiler/arm/codegen/ARMBinaryEncoding.cpp (diff) |
 | compiler/z/codegen/S390Peephole.cpp (diff) |
 | compiler/p/codegen/TreeEvaluatorVMX.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/codegen/LiveRegister.hpp (diff) |
 | compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/optimizer/LocalOpts.cpp (diff) |
 | compiler/x/codegen/SIMDTreeEvaluator.cpp (diff) |
 | compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff) |
 | compiler/optimizer/LocalDeadStoreElimination.cpp (diff) |
 | compiler/p/codegen/OMRInstruction.cpp (diff) |
 | compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/X86FPConversionSnippet.cpp (diff) |
 | compiler/z/codegen/SystemLinkagezOS.cpp (diff) |
 | compiler/compile/VirtualGuard.cpp (diff) |
 | compiler/x/codegen/HelperCallSnippet.cpp (diff) |
 | compiler/ras/Debug.cpp (diff) |
 | compiler/codegen/OMRCodeGenPhase.cpp (diff) |
 | compiler/arm/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/p/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/p/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/z/codegen/S390HelperCallSnippet.cpp (diff) |
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
 | compiler/z/codegen/SystemLinkageLinux.cpp (diff) |
 | compiler/codegen/Relocation.cpp (diff) |
 | compiler/p/codegen/PPCInstruction.cpp (diff) |
 | compiler/z/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenPhase.cpp (diff) |
 | compiler/il/Aliases.cpp (diff) |
 | compiler/optimizer/DeadTreesElimination.cpp (diff) |
 | compiler/p/codegen/PPCAOTRelocation.cpp (diff) |
 | compiler/p/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/x/codegen/OMRRegisterDependency.cpp (diff) |
 | compiler/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/optimizer/LocalLiveRangeReducer.cpp (diff) |
 | compiler/x/codegen/OMRX86Instruction.hpp (diff) |
 | compiler/optimizer/OMROptimizationManager.cpp (diff) |
 | compiler/x/codegen/FPTreeEvaluator.cpp (diff) |
 | compiler/arm/codegen/ConstantDataSnippet.cpp (diff) |
 | compiler/ras/Tree.cpp (diff) |
 | compiler/z/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/optimizer/LoadExtensions.cpp (diff) |
 | compiler/optimizer/RegDepCopyRemoval.cpp (diff) |
 | compiler/z/codegen/CallSnippet.cpp (diff) |
 | compiler/x/codegen/OMRInstruction.cpp (diff) |
 | compiler/arm/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/z/codegen/TranslateEvaluator.cpp (diff) |
 | compiler/p/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/optimizer/InductionVariable.cpp (diff) |
 | compiler/z/codegen/OMRMachine.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
 | compiler/optimizer/RegisterCandidate.cpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/aarch64/codegen/ARM64HelperCallSnippet.cpp (diff) |
 | compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/p/codegen/OMRConstantDataSnippet.cpp (diff) |
 | compiler/p/codegen/GenerateInstructions.cpp (diff) |
 | compiler/p/codegen/OMRMachine.cpp (diff) |
 | compiler/p/codegen/PPCDebug.cpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/z/codegen/S390GenerateInstructions.cpp (diff) |
 | compiler/z/codegen/SystemLinkage.cpp (diff) |
 | compiler/z/codegen/InstOpCode.cpp (diff) |
 | compiler/z/codegen/ConstantDataSnippet.cpp (diff) |
 | compiler/p/codegen/PPCSystemLinkage.cpp (diff) |
 | compiler/p/codegen/PPCTableOfConstants.cpp (diff) |
 | compiler/x/codegen/DataSnippet.cpp (diff) |
 | compiler/x/codegen/DivideCheckSnippet.cpp (diff) |
 | compiler/optimizer/OMRValuePropagation.cpp (diff) |
 | compiler/optimizer/LoopVersioner.cpp (diff) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/optimizer/OMRTransformUtil.cpp (diff) |
 | compiler/z/codegen/BinaryAnalyser.cpp (diff) |
 | compiler/arm/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/ras/DebugCounter.cpp (diff) |
 | compiler/x/codegen/SubtractAnalyser.cpp (diff) |
 | compiler/riscv/codegen/ControlFlowEvaluator.cpp (diff) |
 | compiler/optimizer/LocalTransparency.cpp (diff) |
 | compiler/z/codegen/S390Debug.cpp (diff) |
 | compiler/z/codegen/snippet/PPA1Snippet.cpp (diff) |
 | compiler/x/codegen/OMRLinkage.cpp (diff) |
 | compiler/optimizer/GlobalRegisterAllocator.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/z/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/codegen/PreInstructionSelection.cpp (diff) |
 | compiler/optimizer/PrefetchInsertion.cpp (diff) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/codegen/CodeGenRA.cpp (diff) |
 | compiler/p/codegen/PPCHelperCallSnippet.cpp (diff) |
 | compiler/x/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/z/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/il/OMRNode.cpp (diff) |
 | compiler/z/codegen/snippet/XPLINKCallDescriptorSnippet.cpp (diff) |
 | compiler/optimizer/VPHandlers.cpp (diff) |
Commit
7a2e9743a3b80cdc30b2671d4c82c60bb54e86a3
by dsouzai.ghAdd query in Linkage to get target from comp In order to allow the target to be acquired in x/codegen/OMRLinkage.hpp, this commit adds a static query to get the target from the compilation object (which has only been forward declared in this header). It may not be a good idea to include the Compilation class headers in case of future circular dependancies. Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com> (commit: 7a2e974) |
 | compiler/x/codegen/OMRLinkage.cpp (diff) |
 | compiler/x/codegen/OMRLinkage.hpp (diff) |
|
 | compiler/arm/runtime/VirtualGuardRuntime.cpp (diff) |
 | compiler/aarch64/runtime/VirtualGuardRuntime.cpp (diff) |
 | compiler/runtime/Trampoline.cpp (diff) |
Commit
c565a4f635efd83422c05fa7c5ee7abd62a92e8a
by devinnCMake: Refactor DDR support - Move the OMR_SEPARATE_DEBUG_INFO flag into OmrDDRSupport as consumers may start using ddr before including omr - Fix typo in osx split debug info support dysymutil->dsymutil - Force use of split debug info on osx, as debug info is not stored in libraries (needs to be extracted from input objects) Signed-off-by: Devin Nakamura <devinn@ca.ibm.com> (commit: c565a4f) |
 | cmake/modules/OmrDDRSupport.cmake (diff) |
 | cmake/modules/platform/toolcfg/gnu.cmake (diff) |
 | cmake/config.cmake (diff) |
|
 | cmake/modules/ddr/cmake_ddr.awk (diff) |
Commit
a1105d3c4b9a9d40a0b7f112f62dc9813d3dfeef
by Dhruv.C.ChopraRedefine CG queries to return correct answer The queries modified in this PR are used to replace the generic compileRelocatableCode() query so that it is easier for downstream projects to override them on a case-by-case basis. Since the queries are replacing the original compileRelocatableCode() call, they should be returning the same result as before in OMR. This commit fixes that issue. Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com> (commit: a1105d3) |
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
Commit
0f824c60338729eb8da4f891cbe3642fcd25308c
by qbhaAdd OMR macros for processor feature detection Move required macros, enums and structs from OpenJ9 to OMR's port library Add function signatures for processor/feature detection to OMR Implement processor detection on Windows Add processor and feature detection for Unix Includes Linux, AIX PPC and ZOS systems Add test to verify processor/feature detection. Signed-off-by: Aidan Ha <qbha@edu.uwaterloo.ca> (commit: 0f824c6) |
 | port/omrportpriv.h (diff) |
 | port/zos390/omrsysinfo_helpers.h (diff) |
 | port/common/omrsysinfo_helpers.h |
 | port/linuxs390/omrsysinfo_helpers.h |
 | port/win32/omrsysinfo.c (diff) |
 | include_core/omrport.h (diff) |
 | fvtest/porttest/si.cpp (diff) |
 | port/common/omrport.c (diff) |
 | port/unix_include/omrportpg.h (diff) |
 | port/zos390/omrportpg.h (diff) |
 | port/CMakeLists.txt (diff) |
 | port/common/omrport.tdf (diff) |
 | port/common/omrsysinfo.c (diff) |
 | port/port_objects.mk (diff) |
 | port/common/omrsysinfo_helpers.c |
 | port/unix/omrsysinfo.c (diff) |
|
 | cmake/modules/FindDiaSDK.cmake (diff) |
|
 | gc/structs/ForwardedHeader.hpp (diff) |
 | gc/structs/ForwardedHeader.cpp (diff) |
|
 | include_core/thread_api.h (diff) |
 | thread/common/omrthreadinspect.c (diff) |
|
 | port/common/omrport.tdf (diff) |
 | port/common/omrsysinfo_helpers.c |
 | port/win32/omrsysinfo.c (diff) |
 | port/common/omrsysinfo_helpers.h |
 | port/unix/omrsysinfo.c (diff) |
 | port/common/omrsysinfo.c (diff) |
 | port/zos390/omrsysinfo_helpers.h (diff) |
 | fvtest/porttest/si.cpp (diff) |
 | port/unix_include/omrportpg.h (diff) |
 | port/linuxs390/omrsysinfo_helpers.h |
 | port/zos390/omrportpg.h (diff) |
 | port/port_objects.mk (diff) |
 | port/CMakeLists.txt (diff) |
 | port/common/omrport.c (diff) |
 | include_core/omrport.h (diff) |
 | port/omrportpriv.h (diff) |
|
 | cmake/modules/ddr/DDRSetStub.cmake.in (diff) |
|
 | compiler/optimizer/PreExistence.hpp (diff) |
 | compiler/optimizer/Inliner.cpp (diff) |
 | compiler/optimizer/Inliner.hpp (diff) |
Commit
bc01a98a0a35ed6b51730e0a9cb216af19e03328
by liqunlStop IAP setting site specific information on parm symbol Site specific information that is propagated from caller can not be stored into parm symbols as the method can be called at different call sites with different argument info. One exception is the fixed type info on the outer most method's arguments, because the arguments exist before entering the method. Signed-off-by: Liqun Liu <liqunl@ca.ibm.com> (commit: bc01a98) |
 | compiler/optimizer/LocalOpts.cpp (diff) |
 | compiler/optimizer/LocalOpts.hpp (diff) |
Commit
2221bfe12823550dd2778406e454172bc42a9479
by haleycao88Add OMR_PORT_SOCKET_SUPPORT flag to enable/disable usage of socket API Created the flag for a more lightweight OMR library if user prefers - Created the flag and added it to build systems including autoconf and CMake. - To run with the flag ON, run `cmake .. -DOMR_PORT_SOCKET_SUPPORT=ON` in command line. - Flag is set to be ON for CI and appveyor testing. Issue: #4102 Co-authored-by: Babneet Singh <sbabneet@ca.ibm.com> Signed-off-by: Haley Cao <haleycao88@hotmail.com> (commit: 2221bfe) |
 | include_core/omrcfg.h.in (diff) |
 | cmake/caches/Travis.cmake (diff) |
 | cmake/caches/Appveyor.cmake (diff) |
 | cmake/config.cmake (diff) |
 | configure.ac (diff) |
 | omrmakefiles/configure.mk.in (diff) |
 | example/glue/configure_includes/configure_common.mk (diff) |
 | include_core/omrcfg.cmake.h.in (diff) |
 | configure (diff) |
Commit
abf078f726a1fa62d8663c2848c9fa7538a86f47
by haleycao88Modified files related to OMR Socket API to use flag Updated makefile and CMakeList.txt to only compile socket related files when flag on - Also updated omrport.h, omrport.c and other files related to the OMR Socket API in port library. - Wrap files, omrsock.c and omrsockTest.cpp with ifdefs and check if flags were previously defined, as well as wrapping around Objects for compilations. Issue: #4102 Signed-off-by: Haley Cao <haleycao88@hotmail.com> (commit: abf078f) |
 | port/common/omrport.c (diff) |
 | port/common/omrsock.c (diff) |
 | port/omrportpriv.h (diff) |
 | fvtest/porttest/makefile (diff) |
 | fvtest/porttest/CMakeLists.txt (diff) |
 | port/CMakeLists.txt (diff) |
 | port/port_objects.mk (diff) |
 | include_core/omrport.h (diff) |
 | fvtest/porttest/omrsockTest.cpp (diff) |
Commit
051260bbe7c07a408aed8c6a57e1119255f57dcb
by keithcDDR: add support for xlc/xlclang version 16 * add support for continued STABS entries (but ignore unknown tags that are likely due to truncated output of the dump utility) * add support for C++ ellipses parameter types * consider types '__\d+' un-named on AIX * define DW_FORM_block* constants * ensure __IBMCPP_TR1__ is always defined on AIX (but only do so in config.hpp) * extract function to get value of DW_AT_const_value attribute * fix handling of pointer to member types - skip past optional 'virtual' and 'multiple' base specifications * fix handling of enum literal values (they are expressed in decimal not hex in STABS entries) * fix recognition of vtable pointers (xlclang defines __GNUC__) * handle anonymous typedefs * ignore static fields (xlc 13 doesn't produce STABS entries for them) * don't return NULL for unknown builtin types * fail if we can't decode a STABS string * define macro ddr_constant(name, value) - for handling anonymous nested types; expands to static enum { name = value } ddr_ref_ ## name (only for xlc/xlclang version 16) * recognize anonymous fields: '#bit_field_\d+' * clean up: - pass strings by reference - remove useless const modifier for primitive type parameters - remove redundant test - streamline creation of dump command - remove unused function shiftDecimal() - whitespace (tabs should only appear at the beginning of a line) - extract addRefToPopulate() - issue error if reference resolution fails - print error and exit on bad type reference * fix handling of C++11 versus TR1 - clean up access to unordered_map - remove definition of unused macro: OMR_HAVE_TR1 - remove useless using declarations (hash, runtime_error) Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com> (commit: 051260b) |
 | ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfFunctions.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/AixSymbolTableParser.cpp (diff) |
 | ddr/include/ddr/scanner/pdb/PdbScanner.hpp (diff) |
 | ddr/tools/ddrgen/ddrgen.cpp (diff) |
 | ddr/include/ddr/scanner/dwarf/AixSymbolTableParser.hpp (diff) |
 | ddr/lib/ddr-scanner/dwarf/DwarfFunctions.cpp (diff) |
 | ddr/lib/ddr-blobgen/java/genBlobJava.cpp (diff) |
 | include_core/omr.h (diff) |
 | ddr/include/ddr/std/unordered_map.hpp (diff) |
 | ddr/include/ddr/scanner/dwarf/DwarfScanner.hpp (diff) |
 | ddr/include/ddr/config.hpp (diff) |
 | gc/base/standard/CompactScheme.hpp (diff) |
Commit
ea23cbc62c248cd8398770c16190be3560b68aeb
by mehra.ashutoshExport omrthread_attr_set_detachstate For some reason omrthread_attr_set_detachstate was not exported, while other similar functions are. omrthread_attr_set_detachstate is now needed by OpenJ9 project as part of this PR: https://github.com/eclipse/openj9/pull/7940. Signed-off-by: Ashutosh Mehra <mehra.ashutosh@ibm.com> (commit: ea23cbc) |
 | thread/thread_include.mk (diff) |
 | thread/exports.cmake (diff) |
Commit
41a869309baa0302b9bc6a7ee8ac312daebe8a8a
by jinchengUpdate makefile scripts for RISC-V in OMR (part3/omr) The changes mainly include makefile scripts at the omr-specific directories to enable RISC-V 64bit from the OMR perspective. Issue: eclipse#4426 Signed-off-by: Cheng Jin <jincheng@ca.ibm.com> (commit: 41a8693) |
 | omrmakefiles/configure.mk.in (diff) |
 | omrmakefiles/rules.linux.mk (diff) |
|
 | cmake/caches/Travis.cmake (diff) |
 | cmake/caches/Appveyor.cmake (diff) |
Commit
a42f6f58ebcc571ee3840bca4381ba2171295b32
by qbhaAdd OMR macros for processor feature detection Move required macros, enums and structs from OpenJ9 to OMR's port library Add function signatures for processor/feature detection to OMR Implement processor detection on Windows Add processor and feature detection for Unix Includes Linux, AIX PPC and ZOS systems Add test to verify processor/feature detection. Signed-off-by: Aidan Ha <qbha@edu.uwaterloo.ca> (commit: a42f6f5) |
 | port/zos390/omrsysinfo_helpers.h (diff) |
 | port/common/omrport.c (diff) |
 | port/linuxs390/omrsysinfo_helpers.h |
 | port/unix_include/omrportpg.h (diff) |
 | port/common/omrsysinfo_helpers.c |
 | port/omrportpriv.h (diff) |
 | port/win32/omrsysinfo.c (diff) |
 | fvtest/porttest/si.cpp (diff) |
 | port/CMakeLists.txt (diff) |
 | port/port_objects.mk (diff) |
 | port/common/omrport.tdf (diff) |
 | include_core/omrport.h (diff) |
 | port/common/omrsysinfo.c (diff) |
 | port/unix/omrsysinfo.c (diff) |
 | port/common/omrsysinfo_helpers.h |
 | port/zos390/omrportpg.h (diff) |
Commit
225e17e4fe9b4dbd26c62c9f5596bd7f008c7a3a
by saiakiAArch64: Add generateBinaryEncodingPrePrologue in OMRCodeGenerator This commit adds generateBinaryEncodingPrePrologue, which is used to generate meta data and pre-prologue before method body. Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com> (commit: 225e17e) |
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff) |
Commit
9fca434650ca52d236608e8256f179bfd56883a6
by benFix incorrect binary encoding for vmax* instructions Previously, the prototypes for the vmax* family of instructions were incorrect. Sepcifically, trying to generate a vmaxs* instruction would actually generate a vmaxu* instruction and vice-versa. This could cause unpredictable and difficult to diagnose issues if these instructions were used. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 9fca434) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
Commit
71536e1245fdbccdc8e481a9bc19763c0905742a
by pushkar.bettadpurFixes incorrect register copy and GPR0 use in memory reference instructions When `assignBestRegisterSingle` method looks to perform a register shuffle on memory reference registers, it checks if the instruction defines the register in question and if not, places the register copy above the instruction in question. This is functionally incorrect as registers freed as part of a shuffle can be allocated elsewhere and subsequently get clobbered as part of the register copy. This commit removes the erroneous modification to register copy location and further, prevents the use of GPR0 across all registers in an instruction involving a memory reference. Signed-off-by: Pushkar Bettadpur <pushkar.bettadpur@gmail.com> (commit: 71536e1) |
 | compiler/z/codegen/OMRInstruction.cpp (diff) |
 | compiler/z/codegen/OMRMachine.cpp (diff) |
Commit
4f484f5895ef0623875261ff57da34f02f07280a
by benFix incorrect binary encoding for tabortwc Previously, the prototypes for the tabortwc extended mnemonics were incorrect and were instead generating tabortdc instructions. This could cause undefined behaviour, since the upper word of a register containing a 32-bit value is generally considered undefined. This has now been fixed and these instructions should generate the correct binary encodings. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 4f484f5) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
Commit
a62433c6905465d2338f435c31e4a38d8d6979d3
by pushkar.bettadpurEnsured calls to findBestFreeRegister provide a Register Mask and modify check for useGPR0 The `findBestFreeRegister` API provides an argument to set what registers are available/unavailable for allocation. However a lot of invocations do not specify this argument and instead, a check is performed within `findBestFreeRegister` for a memory reference register and found, GPR0 is made unavailable. These checks lack the appropriate context and it is conceptually cleaner for the caller to set what registers it would like used. This commit finds invocations of `findBestFreeRegister` and sets the available registers field. It also removes the now unnecessary memory reference check. Signed-off-by: Pushkar Bettadpur <pushkar.bettadpur@gmail.com> (commit: a62433c) |
 | compiler/z/codegen/OMRMachine.cpp (diff) |
Commit
297d8429b7d6d6acaa78c43917d21a4214e7f711
by saiakiAArch64: Add Constant Data Snippet This commit adds Constant Data Snippet for aarch64. The code generator is changed to have a list of constant data snippets as x/z code generator does. The snippet adds minimal meta data to the address as ppc version does. Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com> (commit: 297d842) |
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/aarch64/codegen/OMRSnippet.hpp (diff) |
 | compiler/aarch64/codegen/ConstantDataSnippet.cpp |
 | compiler/aarch64/codegen/ConstantDataSnippet.hpp |
 | compiler/aarch64/CMakeLists.txt (diff) |
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
 | jitbuilder/build/files/target/aarch64.mk (diff) |
|
 | gc/base/modronopt.h (diff) |
 | gc/base/standard/ParallelGlobalGC.cpp (diff) |
 | gc/base/standard/Scavenger.cpp (diff) |
 | include_core/omr.h (diff) |
 | include_core/omrcomp.h (diff) |
 | gc/base/Configuration.cpp (diff) |
Commit
435546aa98d140096b989e5fcbcc017e6fef80a6
by liqunlInterface and abstract class can not be final For interface and abstract classes, even though they haven't been extended, we can't treat them as currently final as they will be extended later. Also check that `refinedMethod` is not `NULL` before continue. Signed-off-by: Liqun Liu <liqunl@ca.ibm.com> (commit: 435546a) |
 | compiler/optimizer/LocalOpts.hpp (diff) |
 | compiler/optimizer/LocalOpts.cpp (diff) |
|
 | compiler/aarch64/codegen/GenerateInstructions.cpp (diff) |
Commit
cc6632f480fba6750ee6220a436156f6c269b2b8
by konnoAArch64: Use madd and msub instructions when applicable This commit adds code generation for madd and msub instructions to iadd/ladd/isub/lsubEvaluators. It also removes an unused function addOrSubInteger() from BinaryEvaluator.cpp. Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com> (commit: cc6632f) |
 | compiler/aarch64/codegen/BinaryEvaluator.cpp (diff) |
|
 | compiler/env/Region.hpp (diff) |
 | compiler/optimizer/RegisterCandidate.hpp (diff) |
 | compiler/il/NodePool.cpp (diff) |
 | compiler/infra/OMRCfg.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
|
 | fvtest/tril/test/IlGenTest.cpp (diff) |
 | fvtest/tril/tril/state.hpp |
 | fvtest/tril/tril/converter.hpp |
 | fvtest/tril/tril/CallConverter.cpp |
 | fvtest/tril/tril/ilgen.cpp (diff) |
 | fvtest/tril/tril/CMakeLists.txt (diff) |
 | fvtest/tril/tril/ilgen.hpp (diff) |
 | compiler/ilgen/OMRTypeDictionary.hpp (diff) |
 | fvtest/tril/tril/GenericNodeConverter.cpp |
 | fvtest/tril/tril/CallConverter.hpp |
 | compiler/ilgen/OMRTypeDictionary.cpp (diff) |
 | fvtest/tril/tril/GenericNodeConverter.hpp |
 | fvtest/tril/tril/simple_compiler.cpp (diff) |
|
 | compiler/z/codegen/S390Instruction.hpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
|
 | compiler/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/x/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/optimizer/OMRCFGSimplifier.cpp (diff) |
|
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/UnaryEvaluator.cpp (diff) |
|
 | compiler/compile/OMRSymbolReferenceTable.hpp (diff) |
 | compiler/runtime/Helpers.inc (diff) |
 | compiler/il/Aliases.cpp (diff) |
 | compiler/compile/OMRSymbolReferenceTable.cpp (diff) |
 | compiler/ras/Debug.cpp (diff) |
Commit
f162c57ea35f6007f6bb25397417f3a1a6da91a7
by benRename VMX record form compare instructions Previously, the enumeration value names for the VMX record-form compare instructions did not follow the general rule of adding '_r' to the name of their non-record-form instructions. This was needlessly confusing and inconsistent. These instructions have now had their names updated to follow the usual style. Note that aliases have been left for the old names, since OpenJ9 is referencing some of these instructions directly. Additionally, the instruction properties table has been updated to derive the properties of the VMX record-form compare instructions from those of their non-record-form counterparts. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: f162c57) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
 | compiler/p/codegen/OMRInstOpCodeEnum.hpp (diff) |
 | compiler/p/codegen/OMRTreeEvaluator.cpp (diff) |
|
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
 | compiler/aarch64/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
Commit
2b4931420ef46fc38537713e9394098766592b1f
by yizhangRemove redundant parm to avoid incorrect usage Both `detectInternalCycles` and `catchBlocksHaveRealPredecessors` are intended to detect patterns in the CFG of the receiver method symbol. When calling from `OMR::ResolvedMethodSymbol::genIL` the CFG of the compiling method is passed in rather than the method whose IL is generated which is incorrect. Remove the CFG parm which can be obtained from self()->getFlowGraph() to avoid incorrect use of the API. Signed-off-by: Yi Zhang <yizhang@ca.ibm.com> (commit: 2b49314) |
 | compiler/il/OMRResolvedMethodSymbol.hpp (diff) |
 | compiler/il/OMRResolvedMethodSymbol.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
|
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
Commit
d27fc6166b643f07d8fc83d4c5cf5c7976bbb4ba
by vijaysunAdded support for loadaddr in copy propagation. Replace a load of an auto sym ref A by a loadaddr of an auto sym ref B if there was a store of A : store A = loadaddr B feeding the load of sym ref A. Signed-off-by: Vijay Sundaresan <vijaysun@ca.ibm.com> (commit: d27fc61) |
 | compiler/optimizer/CopyPropagation.cpp (diff) |
|
 | port/unix/omrsysinfo.c (diff) |
Commit
44323c9ef9f38bbb6a54ddb06947bd84c80f1de7
by yizhangAdd NoRecompilationRecoverableILGenException Very often when failing ilgen is because of limitation of the compiler we would want the caller's compilation to continue but don't want to recompile the failing method itself because it would fail again due to the limitation. Added NoRecompilationRecoverableILGenException for such case. Signed-off-by: Yi Zhang <yizhang@ca.ibm.com> (commit: 44323c9) |
 | compiler/compile/CompilationException.hpp (diff) |
|
 | compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff) |
 | compiler/aarch64/codegen/ARM64Instruction.hpp (diff) |
 | compiler/aarch64/codegen/ARM64Debug.cpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.hpp (diff) |
 | compiler/aarch64/codegen/GenerateInstructions.cpp (diff) |
 | compiler/aarch64/codegen/OMRMemoryReference.cpp (diff) |
|
 | gc/base/MemoryManager.hpp (diff) |
|
 | gc/base/GCExtensionsBase.hpp (diff) |
Commit
f05e533c80a36ad9d04bf7ab4d6ab5486567c2a6
by fjeremicRemove redundant z13 processor checks on Z Similarly to all other processors, since the migration of CPU checks to the CPU class we no longer need to explicitly check for specific "disableZ13*" options when also checking for processor support since these checks are already performed for us. We simplify the implementation here to stay consistent with all the other checks for the various CPU processors. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: f05e533) |
 | compiler/control/OMROptions.hpp (diff) |
 | compiler/z/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/z/codegen/S390Peephole.cpp (diff) |
Commit
679e117f983ee75f757ffb459f5e548b185cf656
by fjeremicRemove xlC V1R11 workaround in optimizer This workaround was for a very old version of xlC compiler (10 years old) which we no longer build with. Code archeology reveals the original bug was a compile time crash with the following backtrace: ``` Method_being_compiled=sun/io/Converters.cache(ILjava/lang/Object;)Ljava/lang/Class; TR_J9VM::getBaseComponentClass(TR_OpaqueClassBlock*,int&) TR_J9VMBase::getClassSignature(TR_OpaqueClassBlock*,int&,TR_Memory*) TR_VPResolvedClass::create(TR_ValuePropagation*,TR_OpaqueClassBlock*) constrainCheckcast(TR_ValuePropagation*,TR_Node*) TR_ValuePropagation::processTrees(TR_TreeTop*,TR_TreeTop*) TR_GlobalValuePropagation::processBlock(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionNode(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionSubgraph(TR_StructureSubGraphNode*,bool,bool,bool) TR_GlobalValuePropagation::processRegionNode(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionSubgraph(TR_StructureSubGraphNode*,bool,bool,bool) TR_GlobalValuePropagation::processStructure(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionSubgraph(TR_StructureSubGraphNode*,bool,bool,bool) TR_GlobalValuePropagation::perform() ``` ``` Method_being_compiled=java/util/WeakHashMap.isEqual(Ljava/lang/Object;Ljava/lang/Object;)Z TR_J9VM::getBaseComponentClass(TR_OpaqueClassBlock*,int&) TR_J9VMBase::getClassSignature(TR_OpaqueClassBlock*,int&,TR_Memory*) TR_VPFixedClass::create(TR_ValuePropagation*,TR_OpaqueClassBlock*) constrainIfcmpeqne(TR_ValuePropagation*,TR_Node*,bool) constrainIfcmpne(TR_ValuePropagation*,TR_Node*) TR_ValuePropagation::processTrees(TR_TreeTop*,TR_TreeTop*) TR_GlobalValuePropagation::processBlock(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionNode(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionNode(TR_StructureSubGraphNode*,bool,bool) TR_GlobalValuePropagation::processRegionSubgraph(TR_StructureSubGraphNode*,bool,bool,bool) TR_GlobalValuePropagation::perform() TR_OptimizerImpl::performOptimization(TR_OptimizerImpl::Optimization*,int,int,int) TR_OptimizerImpl::performOptimization(TR_OptimizerImpl::Optimization*,int,int,int) TR_OptimizerImpl::optimize() ``` Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 679e117) |
 | compiler/optimizer/VPConstraint.cpp (diff) |
Commit
f3944170495ecace91caf810bda9f49ad0f29229
by ajcraikRevert PR4699 "Added support for loadaddr in copy propagation." Recent changes in PR4699 to adds support to copy propagation for loadaddr nodes are responsible for acceptance build failures at OpenJ9 with a variety of crashes. This change backs out the changes in PR4699 until the cause of the problem is identified. This reverts commit d27fc6166b643f07d8fc83d4c5cf5c7976bbb4ba. Signed-off-by: Andrew Craik <ajcraik@ca.ibm.com> (commit: f394417) |
 | compiler/optimizer/CopyPropagation.cpp (diff) |
|
 | compiler/il/OMRSymbolReference.hpp (diff) |
Commit
2c0470c88ce45e61b16c8e8de7f69f80a67a9b03
by higorb1Introduce arraylet double mapping verbose GC option Introduce double mapping verbose GC option for balanced GC policy where it outputs "true" if arraylet double mapping is enabled and "false" otherwise Update schema.xsd with balanced verbose gc options Signed-off-by: Igor Braga <higorb1@gmail.com> (commit: 2c0470c) |
 | gc/verbose/VerboseHandlerOutput.cpp (diff) |
 | gc/verbose/schema.xsd (diff) |
 | gc/base/GCExtensionsBase.hpp (diff) |
 | gc/base/MemoryManager.cpp (diff) |
|
 | gc/base/IndexableObjectScanner.hpp (diff) |
 | gc/base/ObjectScanner.hpp (diff) |
 | gc/base/standard/ConcurrentGC.cpp (diff) |
 | gc/base/ObjectModelBase.hpp (diff) |
 | gc/base/SlotObject.hpp (diff) |
 | gc/base/segregated/MemoryPoolSegregated.cpp (diff) |
|
 | compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff) |
 | compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff) |
|
 | compiler/x/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/z/codegen/UnaryEvaluator.cpp (diff) |
 | compiler/z/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/z/codegen/OMRTreeEvaluator.cpp (diff) |
|
 | compiler/optimizer/LocalOpts.cpp (diff) |
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
 | compiler/z/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/optimizer/VPHandlers.cpp (diff) |
 | compiler/p/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/aarch64/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/arm/codegen/BinaryEvaluator.cpp (diff) |
|
 | compiler/p/codegen/BinaryEvaluator.cpp (diff) |
 | compiler/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/z/codegen/OMRMemoryReference.cpp (diff) |
 | compiler/il/OMRNode_inlines.hpp (diff) |
 | compiler/p/codegen/UnaryEvaluator.cpp (diff) |
|
 | compiler/optimizer/DebuggingCounters.cpp (diff) |
 | compiler/il/OMRILOps.hpp (diff) |
 | compiler/optimizer/OMRSimplifierHandlers.cpp (diff) |
|
 | compiler/il/OMRNode.hpp (diff) |
Commit
a463941682ca657cc5e4a44230f8046314280aa6
by benFix VSX record form instruction properties Previously, the VSX compare instructions did not correctly set up their properties to reflect that they have record form variants. Additionally, the record form variants of these instructions did not inherit their properties from the non-record form variants. These issues have now been corrected. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: a463941) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
|
 | compiler/control/OMROptions.cpp (diff) |
 | compiler/control/OMROptions.hpp (diff) |
Commit
f7d59850587ecd4e131f219a19c0a05de8b55bbd
by benAdd unit tests for the Power binary encoder Previously, there was no direct testing of the Power codegen's binary encoder. While portions of it would be exercised by the Tril tests and through the test suites of downstream projects such as OpenJ9, there was a significant amount of functionality that was not tested since it is either currently unused or only used in very exotic situations that are unlikely to be exercised by the existing test suite. In order to better confirm that the Power binary encoder is working as expected, a new set of unit tests are being added that should exercise as much of its functionality as possible. The iteration of these tests being contributed include comprehensive tests for most non-memory opcodes currently in use by the Power codegen in either OMR or OpenJ9. Note that a number of these tests are currently disabled due to known issues in the Power binary encoder. These will be fixed as part of an ongoing refactor to make the Power binary encoder easier to maintain. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: f7d5985) |
 | fvtest/compilerunittest/p/BinaryEncoder.cpp |
 | fvtest/compilerunittest/CodeGenTest.hpp |
 | fvtest/CMakeLists.txt (diff) |
 | fvtest/compilerunittest/CMakeLists.txt |
 | fvtest/compilerunittest/main.cpp |
|
 | cmake/modules/platform/toolcfg/gnu_exports.exp.in |
 | cmake/modules/platform/toolcfg/gnu.cmake (diff) |
|
 | compiler/il/OMRResolvedMethodSymbol.cpp (diff) |
|
 | compiler/z/codegen/S390Instruction.hpp (diff) |
 | compiler/z/codegen/S390Instruction.cpp (diff) |
Commit
440a3f87941e194aa2fce4c5cf8f31570e23e31a
by fjeremicFix recursive case in JitBuilder recfib test The recursive case was incorrectly placed under a define when it should be always on by default. We also take this opportunity to migrate some statics which are only used within the function into local statics. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 440a3f8) |
 | jitbuilder/release/cpp/samples/RecursiveFib.cpp (diff) |
Commit
c3cad6f693a36745853c5df88f640b75858a3869
by fjeremicFix XPLINK call descriptor generation for callouts The cursor currently needs to be specified to `genCallNOPAndDescriptor` to ensure it is generated after the call instruction. Currently because of the way the `TR::S390Imm2Instruction` constructor works it ends up generating the call descriptor at the start of the instruction stream if a `NULL` preceeding instruction is specified. This will be fixed in outside the scope of this change. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: c3cad6f) |
 | compiler/z/codegen/SystemLinkagezOS.cpp (diff) |
Commit
302d04c222383c426add291c3a0bb32a067639c9
by fjeremicUse __malloc31 on z/OS to allocate code cache related memory We currently lack full trampoline support in OMR. To get JitBuilder callouts to native functions working we must ensure we can encode the distance from the JIT method body to the native with a `BRASL` instruction which only has a signed 32-bit range. The only way to currently achieve this is to allocate all code cache memory below the bar. Once JitBuilder is hooked up to the port library we should be able to safely use the port library APIs to accomplish this. See #4719 for more details to references of how this is done in OpenJ9. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 302d04c) |
 | jitbuilder/runtime/JBCodeCacheManager.cpp (diff) |
 | compiler/env/FEBase_t.hpp (diff) |
 | fvtest/compilertest/runtime/TestCodeCacheManager.cpp (diff) |
Commit
e1519a01cd43304b4e15e8cdcf10f17af2a0445a
by liqunlAdded support for loadaddr in copy propagation Replace a load of an auto sym ref A by a loadaddr of an auto sym ref B if there was a store of A : store A = loadaddr B feeding the load of sym ref A. Signed-off-by: Liqun Liu <liqunl@ca.ibm.com> (commit: e1519a0) |
 | compiler/optimizer/CopyPropagation.cpp (diff) |
Commit
d457bb6bbad62fd1af1c8c49cdaedce1bafd33fe
by fjeremicFix Tril lexer transition table size for z/OS The current Tril lexer transition table assumes ASCII so it only creates 128 entries for the transitions. This will not work on z/OS because the native encoding is EBCDIC, so the table size needs to be bumped up to 256 to handle all EBCDIC characters so we have proper transitions. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: d457bb6) |
 | fvtest/tril/tril/parser.cpp (diff) |
Commit
db06abfbb2af4c204de93ec18c8769b4e4290a3a
by benRemove the unused Power ba and bla instructions Previously, the Power codegen had the ability to generate ba and bla instructions. These instructions were able to branch to any absolute sign-extended 24-bit address. However, the binary encoding logic never supported these instructions and they would be exceedingly difficult to use, as ensuring an address falls within the range a ba/bla instruction could branch to would be difficult. As a result of this, these instructions have been removed. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: db06abf) |
 | compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff) |
 | compiler/p/codegen/OMRCodeGenerator.cpp (diff) |
 | compiler/p/codegen/OMRInstOpCodeEnum.hpp (diff) |
Commit
7069efe947801e0250758d8e318626509627b10d
by fjeremicFix linkage register preservation in prologue on z/OS The z/OS system linkage uses the `saveArguments` function to offload arguments to the stack if needed. This function traverses the parameter list looking for arguments which are part of the linkage (linkage arguments) and if needed it stores them to the stack for use in the method. This is currently not done on z/OS for Doubles. What ends up happening is that the linkage register index (lri) is -1 for Double parameters and as such we never store them off to the stack. Subsequently the method body when referencing such parameters tries to load them from the stack and we get back garbage. To fix this we simply enable the logic to mark Double linkage argument registers with proper indices on z/OS. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 7069efe) |
 | compiler/z/codegen/OMRLinkage.cpp (diff) |
Commit
19c0bd92e36d1516e9a1abc8cca918c040ca11e7
by fjeremicSkip MinimalTest on non-x86 platforms because of #1645 On z/OS and Linux on Z we also do not currently support calls, so skip the MinimalTest on those platforms, including other ones which do not support calls. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 19c0bd9) |
 | fvtest/compilertriltest/MinimalTest.cpp (diff) |
|
 | gc/base/GCExtensionsBase.hpp (diff) |
Commit
2ff39edcff4d53feceb24521938044a6daed950e
by Annabelle.HuoAdd a new dynamic constant API to dereference the pointer With `JITServer`, the dynamic constant object uintptrj_t needs to be dereferenced at the client instead of the server. It’s taken care of by `TR_ResolvedJ9JITServerMethod::dynamicConstant()`. To prevent the caller from dereferencing the pointer directly, at the server, adding a new dynamicConstant API to deference it. The server will send one message to retrieve both the pointer and the object values in `TR_ResolvedJ9JITServerMethod::dynamicConstant()`. Since the caller could be run at the client or the server, the new API should always be used when dereferencing the pointer. The old API `dynamicConstant(int32_t cpIndex)` will be deprecated next. Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com> (commit: 2ff39ed) |
 | compiler/compile/ResolvedMethod.cpp (diff) |
 | compiler/compile/ResolvedMethod.hpp (diff) |
Commit
7e2e1c4bbb916130d1578f8b2560220af97d1a35
by salman.ranaFixes https://github.com/eclipse/openj9/issues/8020 - MarkMap init consolidated MarkMap init logic has been merged to resolve the timing hole outlined in https://github.com/eclipse/openj9/issues/8020. MarkMap init is dependent on Concurrent State of the global collector, with the init logic split between `heapAddRange` and `heapReconfigured`, any changes in states between the two may leave expanded mark map uninited. Hence, the decision to init (`setMarkBitsInRange`) the mark map has been moved from `heapAddRange` to `heapReconfigured` which is where we determine if an update to the init table is required (`tuneToHeap`/`determineInitWork`). As a result, init is no longer affected by the change in Concurrent state and we eliminate the timing window. This guarantee that the MarkMap will be inited, either on the spot or afterwards by updating the init table. - Introduced HeapReconfigReason and reworked heapReconfigred API heapReconfigred now distinguishes different reasons for reconfiguration (Expand, contract, etc), this functionality is required for the Mark Map init changes, specifically for Gencon and it is used when Scavenger resizes tenure _(PhysicalSubArenaVirtualMemorySemiSpace)_ or global collecter preforms a resize _(PhysicalSubArenaVirtualMemoryFlat)_. At the time, this is new information is only consumed by Concurrent Global Collecter (ConcurrentGC.cpp), for policies making use of other collectors the HeapReconfigReason param defaults to `NONE`. The Reconfig reasons are dealt in the following ways by Concurrent Global Collector: - We should never end up in `heapReconfigured` with `RECONFIG_NONE` reason - `RECONFIG_CONTRACT` signifies that `heapRemoveRange` had taken place, in which case, we just need to update init table (`tuneToHeap`) when Concurrent is Off, otherwise just `adjustTraceTargets` - If `heapAddRange` takes place then `heapReconfigured` is called with `RECONFIG_EXPAND` and have have two different cases: 1) heapAddRange was successful (return true), heap reconfig should be provided with `lowAddress` & `highAddress` which will be used to init mark map 2) heapAddRange returns false, signifies a failed `heapAddRange`, address params are expected to be NULL, in which case mark map won't be inited but we'll still either `tuneToHeap` or `adjustTraceTarget`. Signed-off-by: Salman Rana <salman.rana@ibm.com> (commit: 7e2e1c4) |
 | gc/base/segregated/MemorySubSpaceSegregated.cpp (diff) |
 | gc/base/standard/Scavenger.cpp (diff) |
 | gc/base/Collector.hpp (diff) |
 | gc/base/segregated/MemorySubSpaceSegregated.hpp (diff) |
 | gc/base/segregated/SegregatedGC.cpp (diff) |
 | gc/base/segregated/SegregatedGC.hpp (diff) |
 | gc/base/MemorySpace.hpp (diff) |
 | gc/base/standard/Scavenger.hpp (diff) |
 | gc/base/MemorySpace.cpp (diff) |
 | gc/base/standard/ConcurrentGC.cpp (diff) |
 | gc/base/Heap.hpp (diff) |
 | gc/base/standard/ConcurrentGC.hpp (diff) |
 | gc/base/standard/PhysicalSubArenaVirtualMemorySemiSpace.cpp (diff) |
 | gc/base/standard/ConcurrentCardTable.cpp (diff) |
 | gc/base/standard/ParallelGlobalGC.hpp (diff) |
 | gc/base/MemorySubSpace.cpp (diff) |
 | gc/base/standard/ConcurrentCardTable.hpp (diff) |
 | include_core/omrgcconsts.h (diff) |
 | gc/base/PhysicalSubArenaVirtualMemoryFlat.cpp (diff) |
 | gc/startup/omrgcstartup.cpp (diff) |
 | gc/base/Heap.cpp (diff) |
 | gc/base/MemorySubSpace.hpp (diff) |
 | gc/base/standard/ParallelGlobalGC.cpp (diff) |
|
 | port/CMakeLists.txt (diff) |
 | port/common/omrsysinfo.c (diff) |
 | port/unix/omrsysinfo.c (diff) |
 | port/linuxriscv64/omrsignal_context.c (diff) |
 | include_core/omrport.h (diff) |
 | port/port_objects.mk (diff) |
 | port/unix/omrmmap.c (diff) |
Commit
31ed890cf71c53e4b13bf3e303256f79fc67cbbf
by ajcraikEnhance Simplifier to minimize child PassThroughs This change adds a check in the simplifier helper logic to see if a child, which has been simplified, has become a PassThrough. If the root node does not answer true to isNullChk() then attach the child of the PassThrough to minimize the number of PassThrough nodes and maximize opportunities for optimization. Signed-off-by: Andrew Craik <ajcraik@ca.ibm.com> (commit: 31ed890) |
 | compiler/optimizer/OMRSimplifierHelpers.cpp (diff) |
Commit
945d244e8f9bb484e3120638ffae8405b2193fd7
by benFix null pointer deref when encoding a MemoryReference Previously, there was an issue when encoding a TR::MemoryReference on Power that used delayed indexed form but without an index register set. The comment in the code implied that the correct thing to do here was to use addi to add the displacement to the base register. However, instead we were trying to fill one of the fields of the instruction with the index register, which was NULL. This code has now been corrected to encode the correct instruction. Signed-off-by: Ben Thomas <ben@benthomas.ca> (commit: 945d244) |
 | compiler/p/codegen/OMRMemoryReference.cpp (diff) |
|
 | gc/base/IndexableObjectScanner.hpp (diff) |
Commit
5de40f9ea41d72ca22241a5461de19f94924fc06
by fjeremicFix JitBuilder and TestCompiler JIT shutdown sequence The shutdown sequence for the compilation controller was never called. On platforms such as z/OS this is problematic because JitBuilder and Tril initialize and shutdown the JIT many times, each time leaking resources in the compilation controller. One such resource is the thread local TLS `OMR::compilation` variable which is typically accessed through `TR::comp()`. This TLS variable was not being properly freed with every shutdown, eventually resulting in inability to allocate the TLS variable which causes crashes later on. The JIT compiler currently assumes `TR::comp()` is always non-NULL in places where it should be available, thus we add fatal asserts if we are for some reason unable to allocate this variable. These asserts would have made investigating this problem trivial. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 5de40f9) |
 | compiler/infra/ThreadLocal.h (diff) |
 | jitbuilder/control/Jit.cpp (diff) |
 | fvtest/compilertest/control/TestJit.cpp (diff) |
Commit
4a3841cb70fd3615c256d8a221f7b24b5b1f7ed0
by fjeremicFix code cache cleanup in JitBuilder and TestCompiler on z/OS The allocated code cache memory was not being freed up on z/OS causing memory leaks and eventual failure of tests which would not be able to allocate code cache memory. Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com> (commit: 4a3841c) |
 | fvtest/compilertest/runtime/TestCodeCacheManager.cpp (diff) |
 | jitbuilder/runtime/JBCodeCacheManager.cpp (diff) |
|
 | compiler/control/CompilationController.cpp (diff) |
 | compiler/infra/ThreadLocal.h |
 | compiler/infra/ThreadLocal.hpp |
 | compiler/compile/OMRCompilation.cpp (diff) |
 | compiler/compile/OMRCompilation.hpp (diff) |
 | compiler/compile/TLSCompilationManager.cpp (diff) |
|
 | buildenv/jenkins/jobs/pull-requests/PullRequest-zos_390-64 (diff) |
 | fvtest/compilertriltest/MinimalTest.cpp (diff) |
 | buildenv/jenkins/jobs/builds/Build-zos_390-64 (diff) |
 | compiler/control/CompilationController.cpp (diff) |
 | compiler/z/codegen/OMRLinkage.cpp (diff) |
 | compiler/z/codegen/SystemLinkagezOS.cpp (diff) |
 | fvtest/tril/tril/parser.cpp (diff) |
 | jitbuilder/runtime/JBCodeCacheManager.cpp (diff) |
 | compiler/compile/TLSCompilationManager.cpp (diff) |
 | compiler/compile/OMRCompilation.cpp (diff) |
 | fvtest/compilertest/control/TestJit.cpp (diff) |
 | compiler/compile/OMRCompilation.hpp (diff) |
 | compiler/env/FEBase_t.hpp (diff) |
 | compiler/infra/ThreadLocal.hpp (diff) |
 | jitbuilder/control/Jit.cpp (diff) |
 | fvtest/compilertest/runtime/TestCodeCacheManager.cpp (diff) |
|
 | include_core/omrport.h (diff) |
 | port/unix/omrsysinfo.c (diff) |
|
 | compiler/control/OMROptions.cpp (diff) |
|
 | buildenv/jenkins/jobs/pull-requests/PullRequest-zos_390-64 (diff) |
 | buildenv/jenkins/jobs/builds/Build-zos_390-64 (diff) |
 | fvtest/tril/test/IlGenTest.cpp (diff) |
|
 | gc/base/ObjectModelBase.hpp (diff) |
 | include_core/omrgcconsts.h (diff) |
Commit
9be0c2944e81c318b06238434304b84da99e012e
by graham_chapmanFix compiler warnings GC_SlotObject::subtractSlotPointers must return intptr_t rather than uintptr_t to be compatible with the pointer subtraction it replaces. Also fix the pointer math helpers to use direct pointer math instead of computing the offsets manually. Signed-off-by: Graham Chapman <graham_chapman@ca.ibm.com> (commit: 9be0c29) |
 | gc/base/SlotObject.hpp (diff) |
 | gc/base/ObjectScanner.hpp (diff) |
Commit
27bfdfcb821615cfb3d97fd421461fcd136927e4
by ajcraikEnhance CFGSimplifier simplifyBooleanStore Currently the CFG Simplifier simplifyBooleanStore routine allows simplification when both sides of an if are storing indirectly to the same symref number. This change enhances the code to also allow indirect stores where the store is done to an offset from the same symref number on both sides. Signed-off-by: Andrew Craik <ajcraik@ca.ibm.com> (commit: 27bfdfc) |
 | compiler/optimizer/OMRCFGSimplifier.cpp (diff) |
|
 | omrtrace/omrtracelog.cpp (diff) |
 | thread/common/thrprof.c (diff) |
 | include_core/ute_dataformat.h (diff) |
 | util/omrutil/gettimebase.c (diff) |
|
 | compiler/optimizer/CopyPropagation.cpp (diff) |
|
 | gc/CMakeLists.txt (diff) |
|
 | compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff) |
 | compiler/x/codegen/X86Ops.hpp (diff) |
 | fvtest/compilertriltest/ArithmeticTest.cpp (diff) |
 | fvtest/compilertriltest/JitTest.hpp (diff) |
 | compiler/x/codegen/BinaryEvaluator.cpp (diff) |
|