Skip to content

Changes

Summary

  1. CMake: update DIA registry search handling (commit: 0fce6b3) (details)
  2. Explicitly specify target in Compilation constructor (commit: d0e0cc1) (details)
  3. Added documentation for omrsock API (commit: 349d9e7) (details)
  4. Bump ALS on Z to z10 (commit: 0403004) (details)
  5. CMake: Fix typo in FindDiaSDK (commit: 64146b0) (details)
  6. CMake: Fix msvc library detection for RelWithDebInfo (commit: 9916427) (details)
  7. Switch the Power minimumALS to use OMRProcessorArchitecture (commit: 958b49d) (details)
  8. Fix compiler tests causing lots of warnings (commit: 0f7c8c3) (details)
  9. Merge Shared Memory Routines from OpenJ9 to OMR (commit: 4db59eb) (details)
  10. AArch64: Fix order of calls to maintain the proper live state of registers (commit: 91e5571) (details)
  11. AArch64: Add a method to kill temporary registers added to register dependency (commit: 2120888) (details)
  12. Fixes in RegDepCopyRemoval for postGRA block splitter (commit: 104d2c3) (details)
  13. Handle PassThrough in ILChildValidator (commit: e2bb845) (details)
  14. Fix x gprClobberEvaluate to ensure correct gc flags are set on new register (commit: 1a59d02) (details)
  15. Fix x iselectEvaluator to ensure correct gc flags are set on result register (commit: c0843bb) (details)
  16. Fix z selectEvaluator to ensure correct gc flags are set on result register (commit: a2b3d90) (details)
  17. Fix aarch64 iselectEvaluator to ensure correct gc flags are set on result register (commit: 880d959) (details)
  18. Fix riscv gprClobberEvaluate to ensure correct gc flags are set on new register (commit: f3c4501) (details)
  19. Fix riscv iselectEvaluator to ensure correct gc flags are set on result register (commit: da1333e) (details)
  20. Improve the Tril tests for select opcodes (commit: 58d2d97) (details)
  21. Skip iselect + bcmp* and scmp* tests on Z (commit: 0987b88) (details)
  22. Skip iselect + bcmp* and scmp* tests on x86 (commit: d1a2969) (details)
  23. Fix spelling of is16BitUnsignedImmediate function (commit: f0d0291) (details)
  24. Implement a helper to evaluate a node to a condition register (commit: 5ed32ed) (details)
  25. Remove the concept of flipped CCRs from the Power codegen (commit: 8ed69bc) (details)
  26. Refactor the Power select evaluators (commit: 2f1baf8) (details)
  27. Remove the iselect control flow instruction (commit: bcd8e57) (details)
  28. Implement isel exploitation in the select evaluators (commit: 2b9283e) (details)
  29. Add internal pointer assert to Power select evaluator (commit: bc037b1) (details)
  30. Deprecate uses of getSupportsArch in Z codegen (commit: f09371b) (details)
  31. Use Snippet to load methodPointer in remote compile (commit: a42b150) (details)
  32. Restrict LARL-use in genLoadAddressConstant (commit: e855952) (details)
  33. AArch64: Fix memory reference to kill registers properly (commit: 7c33de9) (details)
  34. AArch64: Implement Register Association (commit: 50b3ca6) (details)
  35. AArch64: Enhance findBestFreeRegister to use register associations (commit: 512a817) (details)
  36. AArch64: Enhance freeBestRegister to use register associations (commit: 82b1571) (details)
  37. Add missing parentheses in macro definition (commit: acc04ee) (details)
  38. Relocate additions for omrshmem at the end of the file (commit: 36afd32) (details)
  39. CMake: Add omrsig to omr_ddrgen rpath on aix (commit: 09eadc3) (details)
  40. Stop referencing TOCBaseRegister on POWER10 (commit: b3cfdbd) (details)
  41. AArch64: Add real register mask (commit: 9cd45bd) (details)
  42. AArch64: Change Register Assigner to use live register information (commit: 55ce666) (details)
  43. AArch64: Enable Live Registers (commit: f6b166d) (details)
  44. AArch64: Implement regMaskToRealRegister method (commit: a6c8e63) (details)
  45. RISC-V: implement fcmpl, fcmpg, dcmpl and dcmpg (commit: 53036d4) (details)
  46. AArch64: Change register dependency to set up live register information (commit: 75c550b) (details)
  47. AArch64: Fix memory reference for indirect load of const node (commit: 5c60338) (details)
  48. AArch64: Use placeholder registers (commit: 172ab80) (details)
  49. Expand Dispatcher Wait Loop Exit Assert (commit: 44e34fe) (details)
  50. CMake: Add support for cygwin paths when using msvc (commit: b9dc916) (details)
  51. Add static MemoryReference creation helpers (commit: 2554ffc) (details)
  52. Add popfd and pushfd opcode (commit: 6f96390) (details)
  53. Add a function to break on DF set (commit: 5ba456b) (details)
  54. Add default TR_ASSERTs to enum switch statements (commit: d1e6b9e) (details)
  55. Replace MemoryReference constructors with static helpers (commit: a4fae6c) (details)
  56. Remove and replace legacy MemoryReference constructor (commit: d82b6ef) (details)
  57. Change MemoryReference constructors from public to private/protected (commit: 48c3e0b) (details)
  58. Remove old processor detection code (commit: dccbaf2) (details)
  59. Remove Unsafe.copyMemory transformation from OMR (commit: c981d5c) (details)
  60. Add sbyteswap and lbyteswap to opcode tables (commit: cbacb9a) (details)
  61. Add a flag to indicate codegen support for byteswaps (commit: 6df85c1) (details)
  62. Remove the old getSupportsIbyteswap() query (commit: 7d68a30) (details)
  63. Implement sbyteswap and lbyteswap on Power (commit: 8e2a3a7) (details)
  64. Implement sbyteswap and lbyteswap on x (commit: 9cff620) (details)
  65. Implement the byteswap opcodes on Z (commit: f5e75be) (details)
  66. Add byteswap Tril tests (commit: c58cb61) (details)
  67. Remove unneeded asserts from byteswap evaluators (commit: 338560d) (details)
  68. Remove old processor detection code on Power (commit: 47803ad) (details)
  69. Initialize RX Compilation setting before CodeGenerator construction (commit: e3d1611) (details)
  70. Check whether TLS storage for comp object was created before freeing it (commit: 98c6c84) (details)
  71. Add Dynamic Breadth First Scan Ordering to the GC (commit: 66a8c67) (details)
  72. Remove X86VFPCallCleanupInstruction assignRegister assert (commit: a7279e1) (details)
  73. RISC-V: fix compilation error introduced by f3c45015f6 (commit: 9a5314e) (details)
  74. Disable recomp in read only code cache (commit: 94f7e54) (details)
  75. Calls to labels do not require trampolines (commit: 2884fd7) (details)
  76. Disable side-effect guards under read only code cache (commit: 3836308) (details)
  77. Simplify the Power ZEROCHK evaluator (commit: 7f0cab9) (details)
  78. Remove cmp2branch (commit: 43d52a2) (details)
  79. CMake: Fix omr_ddrgen on aix (commit: 2583849) (details)
  80. Add Language Specific Changes for Dynamic BF Scan Ordering (commit: 4d754a8) (details)
  81. Introduce RX code address inquiry functions (commit: 1421fca) (details)
  82. Remove deprecated code from StoreSinking (commit: d5e632a) (details)
  83. Add pointer to owning metadata in sentinel assumption (commit: 90b975b) (details)
  84. Add serialize and size APIs (commit: de88e26) (details)
  85. Add missing param to serialize API (commit: 5b469e2) (details)
  86. Replace uses of TR::comp() with cheaper alternatives (commit: 050212c) (details)
  87. AArch64: Implement byteswap evaluators (commit: 297d346) (details)
  88. Rename x86 CodeGenerator 'initialize' function to 'initializeX86' (commit: e537f3b) (details)
  89. Remove unused helpers from Helpers.inc (commit: 4f52ab9) (details)
  90. Introduce CodeGenerator constructors and initialize functions (commit: 4e028e2) (details)
  91. Add default TR::CodeGenerator constructor (commit: ef7b263) (details)
  92. Remove JitBuilder CodeGenerator implementation (commit: ea17655) (details)
  93. Remove TestCompiler CodeGenerator implementation (commit: db42a87) (details)
  94. Fix the ASSERT in RegDepCopyRemoval (commit: 7aacdcb) (details)
  95. Print s390 processor feature name (commit: 56a6005) (details)
  96. Unify LinkageInfo word initialization (commit: 4d6adde) (details)
  97. Add and use CodeGenerator factory function (commit: 82578df) (details)
  98. CMake: call $(MAKE) for ddr on makefile generators (commit: 8e70a97) (details)
  99. Adding `stalltimems` in `gc-end` stanza (commit: 700b324) (details)
  100. Support Int64 Length Node within setmemoryEvaluator (commit: 791eac8) (details)
  101. Flip default setting of isExternalRelocation (commit: 716129e) (details)
  102. Print ppc processor feature name (commit: 14deb9f) (details)
  103. AArch64: Add support for tbz/tbnz instructions (commit: 30c13bc) (details)
  104. Add j9VMThreadTempSlotField symbol in Symbol Reference Table (commit: 7d72e3f) (details)
  105. AArch64: Add another method to kill temporary registers added to register dependency (commit: 9452f8e) (details)
  106. Fix compile error in RISC-V OMRCodeGenerator.hpp (commit: f9a71c7) (details)
  107. Use Compilation API for asking if recursive method target (commit: 4535ff3) (details)
  108. Provide System linkage implementations of entry point APIs (commit: 1cfbdb8) (details)
  109. Use entryPointFromCompiledMethod linkage API for RISC-V recursive calls (commit: 24167be) (details)
  110. Remove deprecated codegen Relocations (commit: 2754a7c) (details)
  111. Remove deprecated code from Relocation.hpp (commit: 06657b9) (details)
  112. Make findOrCreateRuntimeHelper boolean parms default to false (commit: adc8deb) (details)
  113. Replace references to findOrCreateRuntimeHelper on Power (commit: e5a62de) (details)
  114. Replace references to findOrCreateRuntimeHelper on Z (commit: 2c37bab) (details)
  115. Replace references to findOrCreateRuntimeHelper on X86 (commit: a7d6c1a) (details)
  116. Replace references to findOrCreateRuntimeHelper on ARM (commit: a64551a) (details)
  117. Prevent cfg simplification from transforming stores of internal pointers (commit: 61757b9) (details)
  118. Remove unused JVMPI options (commit: 22dafe1) (details)
  119. AArch64: Fix debug print for tst instruction (commit: 3dbf385) (details)
  120. Remove unused Machine class functionality (commit: 5fa4d6d) (details)
  121. Clear array split stats (commit: 98f94bd) (details)
  122. Fix missing verbose log acquire and release (commit: 8e4bdfc) (details)
  123. AArch64: Change ConstantDataSnippet to use targetaddress2 for non-aconst node (commit: fdded35) (details)
  124. Rename CodeGenerator disableFpGRA to disableFloatingPointGRA (commit: cd753ab) (details)
  125. Disable x87 floating point GRA (commit: 89a6afe) (details)
  126. CMake: Update langlvl on aix (commit: 1e2f01e) (details)
  127. Use entryPointFromCompiledMethod linkage API for recursive calls (commit: f9df260) (details)
  128. Avoid null dereference in inliner due to BCD (commit: c2df848) (details)
  129. Remove reverse load/store opcodes (commit: ba239bc) (details)
  130. Compile twice for DDR on z/OS so optimization is not hindered (commit: 35961cb) (details)
  131. Reorder J9MemorySegment constants from low to high value (commit: 7696eee) (details)
  132. Remove code related to invokeWithArgumentsHelper (commit: c05bb39) (details)
  133. Define OpenJ9-specific HandleRecompilationOps optimization (commit: 3af3a37) (details)
  134. Windows: Fix copyright strings in shared libraries (commit: 6584440) (details)
  135. Add double map API for OSX (commit: 5b3b915) (details)
  136. Add OMR::align() + unit test (commit: 9fe6b2b) (details)
  137. Add CCData to OMR compiler (commit: 392e0d3) (details)
  138. Remove deprecated Power register liveness code (commit: 2742fe3) (details)
  139. Replacing isAbstractClass() and isInterfaceClass() with isConcreteClass() (commit: 50d4fc1) (details)
  140. AArch64: Fix TestBitBranch instruction (commit: 7640bd8) (details)
  141. Fix byteswapped store optimization on Power (commit: e93399a) (details)
  142. Add API to get the sentinel Runtime Assumpion associated with the current Runtime Assumption (commit: 45abc43) (details)
  143. RISC-V: rename TreeEvaluatorTable.hpp (part 1/2) (commit: e667023) (details)
  144. RISC-V: rename TreeEvaluatorTable.hpp (part 2/2) (commit: d178e16) (details)
  145. Fix the badIlOp node generated by RegDepCopyRemoval (commit: a19ea6a) (details)
  146. Remove unneeded content from FrontEnd.hpp (commit: 29ccc32) (details)
  147. Fix assert when encoding stdbrx (commit: 6fddaab) (details)
  148. Disable byteswap support on x86 until issues are resolved (commit: 518e46d) (details)
  149. Make PortSockTest::poll_functionality_many_sockets more robust (commit: 2f398ea) (details)
  150. Remove default CodeGenerator constructor (commit: e7f47df) (details)
  151. Fix lbyteswap store optimization on ppc32 (commit: 9b282a1) (details)
  152. Implement omrcpu_flush_icache() for ARM and AArch64 (commit: 9132a93) (details)
  153. Fix invalid use of stdbrx on P6 and before (commit: b022576) (details)
  154. Remove opcode entries (commit: 5e8c9c4) (details)
  155. Expand macros in il/OMRILOpCodeProperties (commit: 8237568) (details)
  156. Ignore tags files (commit: d393d26) (details)
  157. Update OMROpcodes header file (commit: d381470) (details)
  158. Add values from OMRILOpCodesEnum (commit: 851cc2a) (details)
  159. Adjust OMRILOpCodeProperties macro invocation (commit: 3ba16ad) (details)
  160. Add last Prefetch opcode (commit: 2f80287) (details)
  161. Change OMRILOpCodesEnum to use macro invocation (commit: bf70d58) (details)
  162. Update OMROpcodes.hpp (commit: 8de20bc) (details)
  163. Refactor OMRSimplifierTableEnum.hpp (commit: 0c9d6c9) (details)
  164. Refactor ValuePropagationTable.hpp (commit: fdd14b9) (details)
  165. Canonicalize opcode simplifier handlers (commit: 8411d43) (details)
  166. Canonicalize opcodes and VP handlers (commit: 5fbf6f6) (details)
  167. Remove VP and Simplifier tokens (commit: aad62a0) (details)
  168. Refactor Simplifier and Value Propagation (commit: 54c783e) (details)
  169. Add OMROpcodes header in VP (commit: dbd2e28) (details)
  170. Refactor i386 TreeEvaluatorTable (commit: 335f381) (details)
  171. Add X86 suffix for macro names (commit: 747867e) (details)
  172. Refactor amd64 TreeEvaluatorTable (commit: 0623360) (details)
  173. Refactor aarch64 TreeEvaluatorTable (commit: 0554594) (details)
  174. Refactor p TreeEvaluatorTable (commit: 4da6b27) (details)
  175. Refactor z TreeEvaluatorTable (commit: b0eaa27) (details)
  176. Refactor arm TreeEvaluatorTable (commit: bafce7c) (details)
  177. Adjust aarch64 Tree Evaluator table (commit: bd6fed4) (details)
  178. Adjust ARM architecture TreeEvaluator table (commit: 0f036dd) (details)
  179. Resolve merge conflict (commit: fef86e9) (details)
  180. Remove deprecated unsigned opcodes (commit: 08ba8de) (details)
  181. Remove deprecated set of opcodes (commit: 5e61b6c) (details)
  182. Remove deprecated opcodes TR::iucall / TR::iucalli (commit: 6df8d1d) (details)
  183. Add opcodes sbyteswap and lbyteswap (commit: f6e63fe) (details)
  184. Refactor RISC-V TreeEvaluatorTable (commit: aca3de2) (details)
  185. Fix the BadILOp in some files to prevent errors (commit: ab8b8fe) (details)
  186. Fix the macro mapping for byteswap tree evaluators (commit: d3ac3cb) (details)
  187. Remove redundant macro tree eval guards in ARM (commit: 2e111f8) (details)
  188. Fix tree evaluator macro mapping in Power (commit: 4aea73c) (details)
  189. Fix the incorrect mapping in Power Tree Evaluator (commit: e51ee6f) (details)
  190. Fix fselect and dselect macro mapping in Tree Eval (commit: 1c29eae) (details)
  191. Remap dselect to fselect as dselect does not exist (commit: 9cafff7) (details)
  192. Remove aarch64 name from macro definition (commit: df72e25) (details)
  193. Rename opcode macros to be consistent across archs (commit: ccaa9c7) (details)
  194. Expand SIGNED and UNSIGN in Z TreeEvaluatorTable (commit: bd6b701) (details)
  195. Rename RISC-V TreeEvaluatorTable file (commit: 91d90b2) (details)
  196. Remove redundant comments from OMROpcodes (commit: d470e96) (details)
  197. Add linter job to Azure Pipeline (commit: 841d9b7) (details)
  198. Deprecate Travis CI (commit: e5211a3) (details)
  199. Refresh Azure ccache (commit: f9621f4) (details)
  200. Remove reverse load and store opcodes from ValuePropagationTable.hpp (commit: 33bd893) (details)
  201. Fix naming and structure of RegisterDependencyStruct extensible class (commit: de011bc) (details)
  202. Common RealRegister field in RegisterDependencyStruct (commit: ab9c853) (details)
  203. Introduce common meaningful queries for NoReg and SpilledReg property checks (commit: 17aad65) (details)
  204. Replace reg dep RealRegister property checks with meaningful queries on x86 (commit: fd4efc6) (details)
  205. Replace reg dep RealRegister property checks with meaningful queries on Power (commit: 55eb634) (details)
  206. Replace reg dep RealRegister property checks with meaningful queries on AArch64 (commit: 1e7bc32) (details)
  207. Replace reg dep RealRegister property checks with meaningful queries on RISC-V (commit: b54a622) (details)
  208. Replace TR_ARMRegisterDependency with TR::RegisterDependency (commit: e866e3c) (details)
  209. Replace reg dep RealRegister property checks with meaningful queries on ARM (commit: 6af1a09) (details)
  210. Modify some Z RegisterDependencyConditions APIs to accept a TR::RegisterDependency (commit: 89680ab) (details)
  211. Replace reg dep RealRegister property checks with meaningful queries on Z (commit: 912dca5) (details)
  212. CMake: Enable support for ddr on zos (commit: 696ac44) (details)
  213. Exclude CCDataTest.cpp on MSVC and XL C/C++ (commit: 4e066a5) (details)
  214. Add alignof wrapper for old compilers. (commit: c798177) (details)
  215. Remove C++11-isms that old compilers don't support (commit: 9c7a093) (details)
  216. Rename variable that clashes with ZOS stdlib (commit: 5b72799) (details)
  217. AArch64: Enable fsqrt/dsqrt evaluators in OMRTreeEvaluatorTable (commit: 9904cd4) (details)
  218. Require address load instruction for statics in JITServer (commit: f580a3e) (details)
  219. Remove unnecessary uses of double-colon rules in makefiles (commit: 9626e94) (details)
  220. Improve selection criteria for IndVarEliminination (commit: ce53d62) (details)
  221. Run select parts of make-based builds sequentially (commit: 8a63dfb) (details)
  222. Use a default empty message when NULL passed to set error api (commit: ed46fae) (details)
  223. Add NonSpecificConstObject flag (commit: 8fa3502) (details)
  224. Create an extenstible Opcodes.enum (commit: 93bc6ad) (details)
  225. Deprecate child types array in Tree.cpp in favor expectedChildType API (commit: 3cf1194) (details)
  226. Move postDominators allocation to heap (commit: abc0d12) (details)
  227. Move Opcodes.enum into OMROpcodes.enum to allow for extensibility (commit: aa1b2b6) (details)
  228. Remove enumValue from Opcodes.enum in favor of opcode (commit: 4c7ba6c) (details)
  229. Add Dynamic Breadth First Scan Ordering to Balanced GC (commit: ebc1cc3) (details)
  230. Prepare VP tables for downstream extension (commit: e4e8c95) (details)
  231. Prepare simplifier tables for downstream extension (commit: 60cf435) (details)
  232. Correct "Elf Hello World Tutorial" link (commit: 7245a70) (details)
  233. Explicitly specify output for resource compiler (commit: d3a0bb3) (details)
  234. AArch64: Implement hbit/nolz/notz evaluators (commit: e93c7de) (details)
  235. Add support for CUDA version 11.1 (commit: 5fa0507) (details)
  236. NULL ptr field `_postDominators` to avoid scope issues in future (commit: b69fb82) (details)
  237. Set _compressObjectReferences if mixed build override not defined (commit: 61a4993) (details)
  238. Correct formating to clarify code in for loop (commit: d841b76) (details)
  239. Add support for mixed references mode in CMake builds (commit: 8cbff4b) (details)
  240. Add print cpu feature info port library API (commit: 472538f) (details)
  241. Use TR_BitVector instead of CS2::ABitVector in TR_InterferenceGraph (commit: 6d806b9) (details)
  242. OMR::CCData -> TR::CCData (commit: f8644ed) (details)
  243. Replace macros with inline methods in CCData impl (commit: 95abb74) (details)
  244. Clean up CCData doxygen docs (commit: 5a25e92) (details)
  245. Remove internally managed storage from CCData (commit: a8f59c1) (details)
  246. Fix aliasing issues with storage, put/get, keys (commit: ee49651) (details)
  247. Add a reserve() func rather than overloading put() (commit: 35062c1) (details)
  248. Prefer gtest's ASSERT to EXPECT (commit: 6ad799c) (details)
  249. Make CCData tests more granular (commit: 741b51d) (details)
  250. Move CCData test to fvtest/compilerunittest (commit: ba92393) (details)
  251. Print `initialized` stanza to each file (commit: 25d11dd) (details)
  252. RISC-V: fully-qualify evaluators in OMRTreeEvaluatorTable.hpp (commit: ae03d9c) (details)
  253. Only unset argInfo if value changes (commit: 2565771) (details)
  254. Temporarily disable Power reverse load/store optimizations (commit: 24f32c2) (details)
  255. Add is_trivially_copyable wrapper for GCC<5 (commit: 80f4034) (details)
  256. Simplify type_traits guards (commit: e5e602b) (details)
  257. Use larger storage buffers for CCData tests (commit: 652ac2a) (details)
  258. Avoid some reinterpret_casts in CCData ops (commit: 0faaaf3) (details)
  259. Replace std::is_same with OMR::IsSame (commit: d3a7913) (details)
  260. Create jitResolvedFieldIsVolatile helper (commit: 64c519b) (details)
  261. Prevent MVC reduction in astoreEvaluator if symref is unresolved (commit: 81f8f75) (details)
  262. Fixed traceMsg in LocalAnticipatability (commit: e1d80fa) (details)
  263. Swap dequeue and decrement in Scavenger scan queue (commit: 58f212d) (details)
  264. Return quickly on OSX when 2M pages cannot be allocated (commit: c6b430b) (details)
  265. Fix compile problems in PR #5607 (commit: 4afc1ea) (details)
  266. Change when SupportsAlignedAccessOnly flag is set (commit: fac8431) (details)
  267. Add traceSequentialStoreSimplification option (commit: f0b0e93) (details)
  268. Add support for serialization of TR_BitVector (commit: e9f8cac) (details)
  269. Add `contextid` in `concurrent-collection-start` (commit: 6435eec) (details)
  270. Add NoReg dependencies for Power two-reg form fixedSeqMemAccess (commit: f14cd51) (details)
  271. Add struct TR_SerializedBitVector to maintain order of fields (commit: e6fba68) (details)
  272. Initialize immediate fields for RIE instructions (commit: ba50a0f) (details)
  273. AArch64: Unset hasResumableTrapHandler if TR_DisableTrap is set (commit: 14f84ff) (details)
  274. RISC-V: refactor instruction encoding macros (commit: d5418ee) (details)
  275. Reset on-stack buffer pointer for iconv (commit: d64765a) (details)
  276. Add preProcess stage to recognized call transformer (commit: bb49727) (details)
  277. AArch64: Print instruction comments for memory reference instructions (commit: 59d3d44) (details)
  278. AArch64: Add a method for setting up implicit exception point to InstructionDelegate (commit: 0df4d51) (details)
  279. Remove newline in omrsysinfo_get_processor_feature_string (commit: 4113537) (details)
  280. Upload the documentation for BenefitInliner (commit: 0ba496b) (details)
  281. Add the helper classes for abstract interpretation (commit: c97f7ad) (details)
  282. Refactor CodeGenTest.hpp (commit: 9e6a398) (details)
  283. Add unit tests for abstract interpretation (commit: 977cc0a) (details)
  284. RISC-V: implement `riscvCodeSync()` (commit: b7d016e) (details)
  285. Contribution to OMR build system for shared cache configuration (commit: d144c3e) (details)
  286. RISC-V: use forward declarations in OMRLinkage.hpp (commit: 90b02e8) (details)
  287. RISC-V: add TR_RVBinaryEncodingData struct (commit: 948862b) (details)
  288. RISC-V: unify `.spp` file compilation with AArch64 (commit: 2327ba5) (details)
  289. RISC-V: add processor enum values (commit: a24d33e) (details)
  290. Use portable formats from omrformatconsts.h (commit: 8430318) (details)
  291. Add TR::MemoryReference::create API with trivial implementation (commit: 2ebbeb3) (details)
  292. Use TR::MemoryReference::create API (commit: 8793338) (details)
  293. Fix invalid OMR format specifier on Win32 (commit: df3b63f) (details)
  294. Fix trees around split point in PostGRA block splitter (commit: 456aa09) (details)
  295. Common TR:addDependency() (commit: cd1f7f8) (details)
  296. RISC-V: use TR::addDependency() from code generator utils (commit: d1639fa) (details)
  297. OMR changes to move J9 specific Call Snippet part (commit: 317fde3) (details)
  298. RISC-V: implement "data" instruction (commit: 12588f6) (details)
  299. RISC-V: Add getReturnTypeInfoInstruction() / getReturnTypeInfoInstruction() (commit: 0f81a4f) (details)
  300. AArch64: Add a variant of helper method for creating constant data snippet (commit: 37c5210) (details)
  301. Threading API additions for acquired monitors (commit: f99bca8) (details)
  302. RISC-V: improve CMake toolchain file (commit: c53240e) (details)
  303. AArch64: Add debug print of register dependencies to branch instructions (commit: f186f7f) (details)
  304. Deprecate use of *accessStaticIndirectly API in P and X (commit: 1a7415d) (details)
  305. Remove TR_LinkageConventions field in Z linkages (commit: 481e344) (details)
  306. Delete TR_S390LinkageConventions enum (commit: ce0f8b1) (details)
  307. Remove redundant entries from TR_S390LinkageConventions (commit: d876abd) (details)
  308. Add missing return statement (commit: c094f5f) (details)
  309. Add support for relo records for block freqeuncy and recomp queued flag (commit: 0729dae) (details)
  310. Add recompCounter relocation in generateLoad32BitConstant (commit: eaf836f) (details)
  311. Add new relo types (commit: 1eb757e) (details)
  312. Add new fields to TR_AOTMethodInfo (commit: 92a77d5) (details)
  313. Add new API to inc inline depth (commit: 9784906) (details)
  314. Add API to determine relo type for method to be inlined (commit: 56148c7) (details)
  315. Add Breakpoint Guard to list of known types for AOT (commit: 867fed7) (details)
  316. Remove get and setAccessStaticsIndirectly from Z (commit: 894baef) (details)
  317. Add more performant in-reg byte-reverse series of instr for P8 & P9 (commit: eb756f9) (details)
  318. Wrap instr mask constant into CONSTANT64() in Power byteSwap (commit: 0edd401) (details)
  319. AArch64: Use b.cond instead of cbz/cbnz when all register are used up (commit: 833b00a) (details)
  320. Delete obsolete APIs in `MM_VerboseHandlerOutput` (commit: c2890b0) (details)
  321. Add field to adjust compact to contract minimum contraction ratio (commit: f7f354f) (details)
  322. Fix 0 getContractionSize() in MemorySubSpaceGenerational (commit: c6f0224) (details)
  323. Allow tenure to contract beyond LOA size when LOA is empty (commit: 55c525e) (details)
  324. RISC-V: implement `_patchVirtualGuard()` (commit: bec5df0) (details)
  325. Unblock synchronous signal if it is used (commit: 217933c) (details)
  326. Unblock signals after setting the handler (commit: 96937d1) (details)
  327. Initial ObjectFormat and FunctionCallData definitions (commit: abdde9e) (details)
  328. Create X86 specialization of FunctionCallData (commit: 19410b4) (details)
  329. Initial AMD64 implementation of JitCodeRWXObjectFormat (commit: bf613e2) (details)
  330. Initial AMD64 implementation of JitCodeRXObjectFormat (commit: b4aa3f0) (details)
  331. Add ObjectFormat getter/setter to CodeGenerator (commit: 7f8b6c3) (details)
  332. Refactor prex arg info computation and propagation (commit: 71d22eb) (details)
  333. Filter "C." in the list of locales using language "en" (commit: dc4d2f5) (details)
  334. Update signalExtendedTest re synchronous signals unblock with SIGSEGV (commit: fd64770) (details)
  335. Simplify field names and remove unnecessary routine (commit: 9a287b7) (details)
  336. Fix the check on isStoreIndirect in LocalAnalysis (commit: 18b7e5d) (details)
  337. Fix b2iEvaluator in power for bRegLoad (commit: 5ae1d2b) (details)
  338. Don't compare bool with int (commit: b41ed30) (details)
  339. Remove inline from CCData static member funcs (commit: f4a99dd) (details)
  340. Create relo records of type TR_BlockFrequency and TR_RecompQueuedFlag (commit: c249f4d) (details)
  341. Convert `concurrent-mark-end` to `gc-op` in GMP (commit: 2b18099) (details)
  342. Fix DDR field inconsistency in mixed refs builds (commit: 4752253) (details)
  343. Eliminate vm.heapBaseAddress() (commit: ab1fd2e) (details)
  344. Address PR Comments (commit: 55a1b7d) (details)
  345. Remove @andrewcraik as a code owner (commit: a5a930c) (details)
  346. Consolidate tests for whether to compress pointers (commit: 87fcaa3) (details)
  347. Disallow prefetch insertion when read barriers are necessary (commit: 6fef007) (details)
  348. AArch64: Implement generateDebugCounterBump (commit: 48ac494) (details)
  349. Introduce OMR_FORWARDED_TAG_MASK flag for forwarded header (commit: 644fee0) (details)
  350. GC: update comment in MarkingDelegate::scanRoots() (commit: 524772c) (details)
  351. Fix gencon to work with flattened arrays (commit: 9893796) (details)
  352. Add %sysname dump token on z/OS (commit: 69ef6bf) (details)
  353. RISC-V: implement helper call snippet (commit: 3dab8a0) (details)
  354. Fix errors in IL documentation (commit: 097669b) (details)
  355. Enable jitPersistentAlloc/Free to use non-global persistent memory (commit: cadb5ba) (details)
  356. Fix wrong printf code used for JitBuilder ConstInt64 log output (commit: 5a97aea) (details)
  357. CMake: use $<TARGET_FILE:target> to specify test executables (commit: 1a4352e) (details)
  358. Remove x87 code from RegisterDependency constructor (commit: ae5e0e4) (details)
  359. CMake: make sure DDR is disabled when cross-compiling (commit: 6ebbfd4) (details)
  360. CMake: allow tests to be run using simulator (commit: 68f2034) (details)
  361. Disable several Select tests on RISC-V because of missing implementation (commit: 0d07238) (details)
  362. CMake: disable porttests when running tests under simulator (commit: bd501fb) (details)
  363. CI: enable tests on RISC-V cross compilation pipeline (commit: b3ec72e) (details)
  364. Remove unused applyUserOptions (commit: 318cb74) (details)
  365. Add missing switch case statements for Eflags (commit: b552e5e) (details)
  366. Raise SIGTRAP in TR::trap() instead of SIGABRT (commit: 5a20f67) (details)
  367. Object format changes on Z (commit: b89ff51) (details)
  368. Add function to callSnippet API to get the offsetInHalfWods for call (commit: 31b0ba6) (details)
  369. Update pointer offset addition for dbf Scan Ordering (commit: 32d447e) (details)
  370. Remove and fold code consuming x87 GlobalRegisterFPDependency property (commit: 151a0e4) (details)
  371. Remove x87 GlobalRegisterFPDependency regdep property (commit: 4b2ca0e) (details)
  372. Create a DIE for a tag that dwarfdump-classic doesn't understand (commit: 6c50f7c) (details)
  373. RISC-V: implement copyParametersToHomeLocation() (commit: 24fe4e1) (details)
  374. CMake: Update metal-c handling (commit: 7b6fea0) (details)
  375. RISC-V: add OpenJ9 specific members to linkage properties (commit: af794ef) (details)
  376. Disable fatal message when cross compiling on CYGWIN (commit: ee9a28f) (details)
  377. Improve Parallelization of Remembered Set Scanning in Gencon (commit: b429468) (details)
  378. AArch64: Generate memory barrier for store if symbol is shadow and ordered (commit: c18fd62) (details)
  379. Trim inlines header of extensible classes (commit: 351acbb) (details)
  380. Change self() to protected in OMR::Compilation (commit: 7d31ebb) (details)
  381. Deprecate isSingleRefUnevaluated (commit: 7219168) (details)
  382. Deprecate isSingleRef (commit: 234c0aa) (details)
  383. Set up AIX XLClang flags for CMake builds (commit: 80b63f1) (details)
  384. VerboseGC Initialized Stanza Print Fix (commit: 7ada644) (details)
  385. Fix s2l not sign-extending correctly (commit: eccafd9) (details)
  386. Fix s2i improperly clobbering its child's register (commit: b1024d0) (details)
  387. Simplify Power integral narrowing conversion evaluators (commit: 2076fd4) (details)
  388. Introduce an API for creating loads/stores based on nodes (commit: c475615) (details)
  389. Update integral load/store evaluators to use LoadStoreHandler (commit: 362af1b) (details)
  390. Update vsplats evaluator to use LoadStoreHandler (commit: b403050) (details)
  391. Update vdsetelem evaluator to use LoadStoreHandler (commit: dab5d8d) (details)
  392. Update floating-point load/store evaluators to use LoadStoreHandler (commit: 4e41f4c) (details)
  393. Update vector load/store evaluators to use LoadStoreHandler (commit: f3996d5) (details)
  394. Update byteswap evaluators to use LoadStoreHandler (commit: 49887d6) (details)
  395. Update FP bitwise conversion evaluators to use LoadStoreHandler (commit: da4e340) (details)
  396. Update FP conversion evaluators to use LoadStoreHandler (commit: 30ffcdb) (details)
  397. Update integral conversion evaluators to use LoadStoreHandler (commit: 08e7f0e) (details)
  398. Update copyright dates to 2021 (commit: 5d25291) (details)
  399. Fix handling of non-volatile unresolved symrefs on ppc32 (commit: 6bfb49b) (details)
  400. Add support for lowering optimization (commit: b0197ad) (details)
  401. Tril tests for ibits2f, etc. (commit: 3243d20) (details)
  402. Misc. source formatting cleanup in CallStack.cpp (commit: 9abd0be) (details)
  403. Replace globalAllocator with TR::CompilerEnv rawAllocator (commit: 64dbab2) (details)
  404. Remove deprecated GlobalAllocator (commit: 33b3bc7) (details)
  405. Remove deprecated GlobalSingletonAllocator (commit: 76426e5) (details)
  406. Remove deprecated CS2::stat_allocator (commit: ad85824) (details)
  407. Make Optimizer self() function protected (commit: f3633d8) (details)
  408. Add relo type for a pointer to an inlined method (commit: d84363c) (details)
  409. Support TR_AbsoluteHelperAddress constant address loads on power (commit: d95c149) (details)
  410. AArch64: Workaround for huge methods (commit: 6b5b6ac) (details)
  411. Add baseReg dependency for POWER generatePairedStoreSequence (commit: f88b97f) (details)
  412. Exclude percolate GC CPU time from stats (commit: 7e9a012) (details)
  413. Prepare non-helper symbol printing for extensibility (commit: 6b54617) (details)
  414. Make NonHelperSymbols enum extensible (commit: 86eae37) (details)
  415. Migrate OpenJ9-specific non-helpers to OpenJ9 (commit: 0023c49) (details)
  416. Address some warnings from clang on macOS (commit: 480770d) (details)
  417. Add support for CUDA version 11.2 (commit: 60ada7d) (details)
  418. Reduce use of OMR_HOST_OS (commit: c06a44b) (details)
  419. Add useful comment for disableGuardedCountingRecompilation option (commit: 8edf75f) (details)
  420. Change self() to protected in OMR::AliasBuilder (commit: ac25e08) (details)
  421. Change self() to protected in OMR::SymbolReferenceTable (commit: 7a2411b) (details)
  422. Change self() to protected in OMR::Method (commit: 0db12fe) (details)
  423. Deprecate PrefetchInsertion optimization (commit: 46e59bf) (details)
  424. Updated copyright date in OMRCompilation.hpp (commit: f396843) (details)
  425. Increase build & test timeout to 2 hours (commit: 8e4c7eb) (details)
  426. Update dataAddr whenever GC moves indexable object (commit: a51b0b0) (details)
  427. Remove unused TR_FrontEnd parameter from HedgeTree print and printTree (commit: b3633d9) (details)
  428. Fix reading of version from tracepoint data files (commit: e4eccdd) (details)
  429. Access system class loader using a front-end query (commit: ff9ac31) (details)
  430. Remove allocator name fields (commit: 3710496) (details)
  431. Remove unused arena allocator factory function for LabelSymbol (commit: 65bff8f) (details)
  432. Remove unused allocator parameter from NodePool constructor (commit: 396702a) (details)
  433. Revert "Update dataAddr whenever GC moves indexable object" (commit: 11a5cc6) (details)
  434. Remove unused stats collection functions from CS2 allocators (commit: 2a92028) (details)
  435. Get TR_OpaqueMethodBlock correct under relocatable compilations (commit: 09c9621) (details)
  436. Replace genie-omr with Jenkins in CI documentation (commit: eb46bc9) (details)
  437. CEL4RO31 support for shared library load, lookup and close (commit: a100900) (details)
  438. Introduce _CEE3164_ENVFILE as a temporary workaround (commit: d236e95) (details)
  439. Relax the assertion in RegDepCopyRemoval (commit: 6653517) (details)
  440. Update dataAddr whenever GC moves indexable object (commit: 79ec7ca) (details)
  441. Increase size of buffer in block validation (commit: f5aba92) (details)
  442. AArch64: Support Internal Pointer (commit: 56aa158) (details)
  443. AArch64: Enable Internal Pointer (commit: 9e10331) (details)
  444. Adaptive GC Threading (commit: 403d231) (details)
  445. Suppress MSVC version banner (commit: 04d43b6) (details)
  446. Remove redundant file removal (commit: f377a6f) (details)
  447. DDR: omit blank lines in annt files (commit: da2df35) (details)
  448. Refactor TR_AOTMethodInfo out of TR_InlinedCallSite (commit: 3533681) (details)
  449. Rename 'beginner' label to 'good first issue' (commit: b6ddcc3) (details)
  450. AArch64: Fix genericBinaryEvaluator for internal pointer case (commit: f769d43) (details)
  451. Adjust cardCleaningThreshold for language specific kickoff (commit: 2394198) (details)
  452. Increment Exclusive count for percolate Global (commit: da66147) (details)
  453. Remove declaration and definition of movedObjectHashCode (commit: b2217c1) (details)
  454. Add flag to disable loadaddr specialization in x86 MemoryReferences (commit: 2b0dfe6) (details)
  455. AArch64: Support PRFM instruction (commit: d9c0dbc) (details)
  456. Remove unused _gpuParms and _gpuBlockDimX fields from Compilation class (commit: a7a8d40) (details)
  457. Move snippets-to-be-patched lists from Compilation to CodeGenerator (commit: d8030ee) (details)
  458. Consolidate duplicate code to remember snippets containing class pointers (commit: 8729317) (details)
  459. Allocate correct buffer size in omrsysinfo_get_OS_type() (commit: 15dca83) (details)
  460. Better detection of Windows 10 in omrsysinfo_get_OS_type() (commit: f842ddc) (details)
  461. Compute Windows 10 build number in omrsysinfo_get_OS_version() (commit: 365121e) (details)
  462. AArch64: Add class unloading pic site to address constant (commit: 0329ee1) (details)
  463. Add opt methodHandleTransformer (commit: 488b6e8) (details)
  464. Guard adaptiveThreadingEnabled() for OMR_GC_MODRON_SCAVENGER only (commit: 7579b9a) (details)
  465. Fix AArch64 compile failures (commit: 1a639d3) (details)
  466. Fix memory leak from omrsysinfo_get_OS_version() (commit: c03692e) (details)
  467. AArch64: Vector add/ orr instruction inclusion (commit: 42d73ef) (details)
  468. AArch64: Vector register support on stack mapping (commit: fe78cd7) (details)
  469. AArch64: Vector load and store support (commit: c842228) (details)
  470. AArch64: Vector add implementation (commit: 35728e5) (details)
  471. Add memory object type for OpenJ9 JITServer AOT cache (commit: 25a4fc2) (details)
  472. Remove unused _noEarlyInline field from Compilation class (commit: f8aec14) (details)
  473. AArch64: Add register related virtual method to ARM64MemInstruction (commit: afaf113) (details)
  474. AArch64: Vector add tril test (commit: 7120a36) (details)
  475. AArch64: Vector subtraction opcode inclusion (commit: 036741e) (details)
  476. AArch64: Vector subtraction implementation (commit: 01620d9) (details)
  477. Map OMRPORT_RESOURCE_ADDRESS_SPACE to RLIMIT_MEMLIMIT for z/OS 64 bit (commit: 4f14314) (details)
  478. RISC-V: refactor `initRVRealRegisterLinkage()` to use (new) FOR_EACH_RESERVED_REGISTER()` macro (commit: 5a080e6) (details)
  479. CMake: Remove ASM-ZOS (commit: 4f64d57) (details)
  480. Skip some tests in compilertriltest on AArch64 (commit: 505d834) (details)
  481. Add TR_VMINLMethod relo type (commit: 77cea00) (details)
  482. Add computedStaticCallSymbol (commit: 8385ad2) (details)
  483. PPC: Exclude tril tests (commit: ea5be46) (details)
  484. AArch64: Vector sub tril test (commit: fd15d9a) (details)
  485. AArch64: Print instruction comments for branch instructions (commit: ba8cfe6) (details)
  486. AArch64: Enable using VirtualGuardNOP as branch to OOL section. (commit: f0ca449) (details)
  487. Initialize TR_X86ProcessorInfo once (commit: be400f0) (details)
  488. RISC-V: move FOR_EACH_*_REGISTER() macros to OMRLinkage.hpp (commit: bfa41af) (details)
  489. RISC-V: implement ++ operators for TR::RealRegister::RegNum (commit: dd45ea2) (details)
  490. RISC-V: introduce RVLinkageProperties::initialize() to initialize derived members (commit: b194b27) (details)
  491. RISC-V: move initialization of (system) linkage properties to its own class (commit: f314772) (details)
  492. RISC-V: make system linkage properties static (commit: 43983d7) (details)
  493. RISC-V: add comment RVSystemLinkageProperties::initialize() (commit: d9c35bd) (details)
  494. Add notes on GlRegDeps (commit: 50cfe56) (details)
  495. Ensure consistency between resolved method and symbol wrt isInterpreted (commit: ebeac7b) (details)
  496. Fix Peephole optimization for iushr,ishr (commit: 90229d2) (details)
  497. AArch64: Vector mul-div opcode inclusion (commit: 2f0a0e3) (details)
  498. AArch64: Vector mul-div implementation (commit: fdb9b28) (details)
  499. Separate OMR x86 linkage properties from linkage class (commit: edecda6) (details)
  500. Define isArrayCompTypeValueType method for Value Propagation (commit: d429462) (details)
  501. Restore concurrent end trigger (commit: 39dd3d8) (details)
  502. AArch64: Improve code generation for i2l-lshl sequence (commit: ca33fa8) (details)
  503. Update CEL4RO31 control block function descriptor member (commit: ab60693) (details)
  504. Cleanup PPCArrayCmp remnants (commit: 4f27f79) (details)
  505. Remove gap in runtime helper table enum values (commit: 920c993) (details)
  506. AArch64: Vector mul-div tril test (commit: 233e0f0) (details)
  507. Vector tril test comments cleanup (commit: 2b3ef73) (details)
  508. Dummy OMROptimizer_inlines.hpp header added (commit: f75db26) (details)
  509. Cleanup PPCArrayCmp remnants (commit: afd29aa) (details)
  510. Reorg Scavenger::copy() epilog (commit: 51cde66) (details)
  511. Fix paddi and lxvdsx for vsplatsEvaluator to have GPR register (commit: 96c559a) (details)
  512. Revert "AArch64: Improve code generation for i2l-lshl sequence" (commit: 9189430) (details)
  513. AArch64: Use correct parameter for memory barrier instructions (commit: d673188) (details)
  514. Check if current phase concurrent when trying to yield (commit: 5c5e544) (details)
  515. Optimizer_inlines.hpp header added (commit: 2dbaf28) (details)
  516. Add notes on mainline and outofline concepts (commit: 6738cf6) (details)
  517. Remove _LONG_LONG from TR_COMPILE_DEFINITIONS on z (commit: abd98f3) (details)
  518. CMake: fix ddr macro processing on z/OS (commit: 5ef8609) (details)
  519. Add default constructor for SymbolReference (commit: 1c1853c) (details)
  520. Remove Signed-off-by requirement for OMR commits (commit: 8d093fc) (details)
  521. Generate normal .exp files (commit: 4cfbe42) (details)
  522. AArch64: Add processor feature detection to port library (commit: 92ff179) (details)
  523. AArch64: Add query for supported feature of CPU (commit: 5fa8002) (details)
  524. Fix typo of AARCH64 processor type enum (commit: d8fc029) (details)
  525. Add AbsoluteHelperAddress Relocation for PPCSystemLinkage calls (commit: b455eec) (details)
  526. Fix compiler errors when DEBUG is defined (commit: 41c46b8) (details)
  527. Remove unused global memoryAllocMonitor definition (commit: e822618) (details)
  528. Remove unused temps from x86 CodeGenerator (commit: abf40db) (details)
  529. Use a human readable name for the object comparison non-helper (commit: 526e63b) (details)
  530. Remove deprecated references to X86 UnresolvedVirtualCallSnippets (commit: 071549d) (details)
  531. Deprecate isWarm parameter for data snippets (commit: e899aab) (details)
  532. Add omrstr_ftime_ex() (commit: 42b04a6) (details)
  533. New `concurrent-start/end` for Global Marking (commit: 34dc1e7) (details)
  534. Cleanup SwitchAnalyzer by removing dead code, unused includes, formatting issues (commit: 8b923cd) (details)
  535. CMake: update z/OS export handling (commit: 7be1ed4) (details)
  536. Guard a2e calls and update CELQGIPB vector offset (commit: 0b048ba) (details)
  537. Deprecate findOrCreateLiteral codegen API (commit: 4a14a85) (details)
  538. CMake: fix typo in DDRSetStub.cmake.in (commit: b0f8793) (details)
  539. Add omrsl cel4ro31 testcase (commit: fc2bff7) (details)
  540. Add j9VMThreadFloatTemp1Symbol (commit: e8c0516) (details)
  541. Remove deprecated TR::MergeNew IL opcode (commit: d2b7841) (details)
  542. Remove unused trigonometry opcodes (commit: eb465c4) (details)
  543. Remove unused TR::log/TR::vdlog IL opcodes (commit: e0605ab) (details)
  544. Remove unused exp family IL opcodes (commit: 52b1c65) (details)
  545. Remove unused IL opcodes (commit: 708cf01) (details)
  546. Remove unused IL opcodes (commit: 9b3534b) (details)
  547. Remove unused XuRegLoad/XuRegStore/aXuadd IL opcodes (commit: 0ee2909) (details)
  548. Remove unused TR::arraycmpWithPad IL opcode (commit: 37f0935) (details)
  549. Deprecate a set of DFP recognized methods (commit: 265f871) (details)
  550. Deprecate code guarded by SUPPORT_DFP (commit: ad3a5b2) (details)
  551. Deperecate all DFP opcodes and datatypes (commit: 9f31bc7) (details)
  552. Deprecate DFP related code in Z codegen (commit: 02c7abe) (details)
  553. Deprecate DFP related options (commit: 7780a2b) (details)
  554. AArch64: Implement atomic add and swap codegen support (commit: 8dc482a) (details)
  555. CMake: Set LIBPATH for ddr on z/OS (commit: 323d32a) (details)
  556. Enable omrthread_get_stack_range on AIX (commit: 141c34e) (details)
  557. Disable x87 floating point for 32-bit code generation (commit: 576745e) (details)
  558. Deprecate miscellaneous DFP APIs (commit: 89c1ba3) (details)
  559. Deprecate blockIndex in aarch64 and arm (commit: ef9fa86) (details)
  560. Deprecate blockIndex in Power (commit: 1d89b25) (details)
  561. Deprecate blockIndex in riscv (commit: 901a96f) (details)
  562. Deprecate blockIndex in Z (commit: 4969afa) (details)
  563. Deprecate blockIndex in codegen (commit: 425504c) (details)
  564. Deprecate TR_DisableOOL option (commit: 2f617f6) (details)
  565. AArch64: Enable byteswap (commit: af6aafc) (details)
  566. Update getProcessorName routines (commit: 03905d3) (details)
  567. Fix omrthread_get_stack_range behaviour on AIX (commit: e1139d5) (details)
  568. Deprecate dead APIs used in doRegisterAssignment (commit: a2c7728) (details)
  569. Deprecate hasBeenVisited block API (commit: 3d2a47c) (details)
  570. Remove isOutOfLineColdPath guards from doRegisterAssignment (commit: 24a5774) (details)
  571. Migrate TBEGIN register allocator code to S390SILInstruction (commit: 739caac) (details)
  572. Migrate DCB register allocation code to S390DebugCounterBumpInstruction (commit: 8c45dc1) (details)
  573. Migrate handleLoadWithRegRanges to OMRInstruction.cpp (commit: 1506708) (details)
  574. Migrate removeGhostRegistersFromGCMaps to ARMConditionalBranchInstruction (commit: decbc18) (details)
  575. Unify doRegisterAssignment on all platforms except x86 (commit: 6ed62c2) (details)
  576. Avoid zeroing out spilled register lists for OOL (commit: 7d3ca8f) (details)
  577. Add getProcessorName to other codegens (commit: da34f97) (details)
  578. Define __EXTABI__ for Port library compilation on AIX64 (commit: 1a3d24c) (details)
  579. CMake: Update handling of a2e/omr_ascii (commit: abc94cf) (details)
  580. Introduce New Default Scan Ordering 'None' (commit: d24ef7d) (details)
  581. Unify TR_*OutOfLineCodeSection::assignRegisters across codegens (commit: 1d23350) (details)
  582. Deprecate TR_OptimizeForSpace (commit: 20d6734) (details)
  583. Deprecate unsigned equality compare IL (commit: 5681311) (details)
  584. Deprecate unsigned load IL (commit: 926ac47) (details)
  585. Deprecate unsigned store IL (commit: 984a3ae) (details)
  586. Deprecate unsigned add/subtract IL (commit: b977b61) (details)
  587. Deprecate unsigned shift IL (commit: 55d20a4) (details)
  588. Deprecate unsigned shift logical IL (commit: 9a7b9ee) (details)
  589. Deprecate isNotDeprecatedUnsigned (commit: 5459b3f) (details)
  590. Fix -Wcomment (commit: 387ae3f) (details)
  591. Fix -Wnull-arithmetic (commit: 39ba2e1) (details)
  592. Fix -Wformat (commit: 4ba2ff8) (details)
  593. Enable warnings as errors in compiler component on OSX (commit: 36f9278) (details)
  594. AArch64: Vector bitwise AND operation (commit: 0d7fc8c) (details)
  595. AArch64: Vector bitwise OR operation (commit: 7c65f12) (details)
  596. AArch64: Vector bitwise Exclusive OR operation (commit: 9e26ef3) (details)
  597. AArch64: Vector Negate operation (commit: 56b4e29) (details)
  598. AArch64: Vector bitwise NOT operation (commit: 236a9b4) (details)
  599. CMake: apply omr_base flags to omrutil_obj (commit: 0a66a61) (details)
  600. CMake: Fix handling of ddr scanner (commit: 008aa07) (details)
  601. Disable -Winvalid-offsetof in FEBase.cpp (commit: 140c336) (details)
  602. Update vnot IL Opcode Properties (commit: 0ebad75) (details)
  603. Fix -Wlogical-op-parentheses (commit: ba13223) (details)
  604. Fix omrthread_get_stack_range on Mac OSX (commit: 76e5e03) (details)
  605. AArch64: Add atomic operation instructions introduced by FEAT_LSE (commit: 57b4dca) (details)
  606. AArch64: Use atomic operation instructions for atomic method symbols (commit: b45c245) (details)
  607. Convert RegisterDependencyGroup to an extensible class on Z (commit: e38eed9) (details)
  608. Convert RegisterDependencyGroup to an extensible class on Power (commit: ec7638c) (details)
  609. Convert RegisterDependencyGroup to an extensible class on x86 (commit: 02edfb9) (details)
  610. Convert RegisterDependencyGroup to an extensible class on AArch64 (commit: b45d152) (details)
  611. Convert RegisterDependencyGroup to an extensible class on ARM (commit: 85b7630) (details)
  612. Convert RegisterDependencyGroup to an extensible class on RISC-V (commit: 1923beb) (details)
  613. Simplify concrete definition of RegisterDependencyGroup (commit: a5bca79) (details)
  614. Add OMR_EXTENSIBLE to RegisterDependencyGroup in each codegen (commit: 847e05a) (details)
  615. Implement and use self() for RegisterDependencyGroup (commit: 896d27b) (details)
  616. Prepare replacing MemoryPoolBumpPointer with (commit: b27da20) (details)
  617. Remove deprecated callTheJitsArrayCopyHelper() function (commit: a190d0b) (details)
  618. Remove unused canTransformArrayCopyCallForSmall() (commit: ea9c36f) (details)
  619. Update TR_ResolvedMethod to obtain the number of ROM method args (commit: f72bfa7) (details)
  620. Remove deprecated TR_AVLTree from ValuePropagation (commit: 77bfee0) (details)
  621. Vector bitwise Tril tests (commit: 9d8c4a2) (details)
  622. AArch64: Add ScratchRegisterDependencyConditions class (commit: a08cfb8) (details)
  623. Deprecate unused pseudo-instructions on Z (commit: 207569c) (details)
  624. Create a cross-codegen OMRInstOpcode.enum (commit: c6b4401) (details)
  625. Rename OMRInstOpcodeEnum.hpp to OMRInstOpcode.enum (commit: f2763d7) (details)
  626. Migrate assocreg to the common codegen (commit: 8a1541b) (details)
  627. Migrate bad to the common codegen (commit: 4a20228) (details)
  628. Migrate dd to the common codegen (commit: c922bd4) (details)
  629. Migrate fence to the common codegen (commit: 8d698eb) (details)
  630. Migrate label to the common codegen (commit: e62f3d2) (details)
  631. Migrate proc to the common codegen (commit: 9c45612) (details)
  632. Moved _ialoadUnneeded field to Z CodeGenerator (commit: 6434715) (details)
  633. Handle both AddressOrdered and BumpPointer regionType in setMarkMapValid (commit: 80a68c7) (details)
  634. Prevent LoopVersioner from attempting to privatize BCD type nodes (commit: 4c68263) (details)
  635. Add command line option to make inliner more aggressive (commit: b079422) (details)
  636. Update Default Scan Ordering Configuration (commit: debf0a8) (details)
  637. Migrate retn to the common codegen (commit: c1b3520) (details)
  638. Migrate vgnop to the common codegen (commit: 4dd0b66) (details)
  639. Fixup binaryEncodings on AArch64 and RISC-V (commit: b224aa3) (details)
  640. Make _ialoadUnneeded protected (commit: f587737) (details)
  641. Allow 64K page size as a valid option on AIX (commit: 3978111) (details)
  642. AArch64: Improve code generation for i2l-lshl sequence (commit: 439b733) (details)
  643. Limit Incremental Card Alignment under 64 bit system (commit: d1944d9) (details)
  644. Replace method in VPHandlers.cpp with equivalent method in VP (commit: 6714867) (details)
  645. Enable OSR for profiling compilations with JProfiling (commit: 8caf6fe) (details)
  646. Reduce MemoryPoolAddressOrderedList casting in Usage (commit: 2a61988) (details)
  647. Revert "Allow 64K page size as a valid option on AIX" (commit: 982a3ae) (details)
  648. Refactor CopyForward to reuse fixupForwardedObject (commit: c57a70c) (details)
  649. Make InstOpCode an extensible class on x86 (commit: 3a5345e) (details)
  650. Create skeleton OMRInstOpCode files and classes (commit: 341a6b3) (details)
  651. Replace includes of X86Ops.hpp with OMRInstOpCode.hpp (commit: ccd1fcc) (details)
  652. Temporarily inherit TR_X86OpCode from InstOpCode (commit: 368355e) (details)
  653. Temporarily remove InstOpCode::length (commit: 36f0e3d) (details)
  654. Replace instantiations of TR_X86OpCode with TR::InstOpCode (commit: c75023f) (details)
  655. Deprecate TR_X86OpCode (commit: ca28401) (details)
  656. Inline X86Ops.hpp into OMRInstOpCode.hpp (commit: 42393a0) (details)
  657. Add common pseudo-instructions to X86Ops.ins (commit: 54ca99b) (details)
  658. Alias TR_X86OpCodes with OMR::InstOpCode::Mnemonic (commit: 23cc13b) (details)
  659. Deprecate TR_X86OpCodes in favour of TR::InstOpCode::Mnemonic (commit: 3c6384e) (details)
  660. Deprecate _opcode in favour of _mnemonic (commit: 8b051bc) (details)
  661. Revamp Jenkins labels to a single compile label (commit: 237e32a) (details)
  662. Fix construction of log file name with TR_EnablePIDExtension (commit: d56ec61) (details)
  663. Correct condition used to setting unneeded aloadi (commit: f285fc7) (details)
  664. Migrate getOpCodeName and getMnemonicName from OpNames.cpp (commit: ab74df3) (details)
  665. AArch64: Fix i2l-lshl optimization (commit: 054ad1e) (details)
  666. Allow inliner policy to decide whether to remove differing targets (commit: d4f24cc) (details)
  667. AArch64: Implement fmax/fmin/dmax/dmin evaluators (commit: 2852c11) (details)
  668. Remove TR_DebugExt friend class (commit: d299610) (details)
  669. Remove isDebugExtension (commit: 5b33fe0) (details)
  670. Update Copyrights (commit: aad441e) (details)
  671. AArch64: Implement fcmpg/fcmpl/dcmpg/dcmpl evaluators (commit: f40e11a) (details)
  672. Standardize evaluator names on RISC-V (commit: ef36ae9) (details)
  673. Standardize evaluator names on AArch64 (commit: 8d986d9) (details)
  674. Standardize evaluator names on ARM (commit: 5c37e71) (details)
  675. Standardize evaluator names on Power (commit: 2bdb711) (details)
  676. Standardize evaluator names on x86 (commit: ab0f64c) (details)
  677. Standardize evaluator names on Z (commit: be0fa25) (details)
  678. Deprecate the TreeEvaluatorTable across codegens (commit: f753871) (details)
  679. Deprecate unused zccAddSubEvaluator (commit: 00daa3e) (details)
  680. Override x86 and Power undefined evaluators (commit: f17e0de) (details)
  681. Override isILOpCodeSupported on x86 (commit: 6966969) (details)
  682. Override isILOpCodeSupported on RISC-V (commit: 30ee445) (details)
  683. Allow 64K page size as a valid option on AIX (commit: cd284c1) (details)
  684. Add an option to buffer expensive JITServer compilations (commit: 6d9e4dc) (details)
  685. AArch64: Add TR_ARM64jitCollapseJNIReferenceFrame to getRuntimeHelperName (commit: 947e5e7) (details)
  686. Improve code generation for inlineArrayCmp on Power10 (commit: a95aba5) (details)
  687. Implement supportsInliningOfIsInstance on POWER (commit: 59dc6c1) (details)
  688. Use addAtomic for incrementing counters of OMRMemCategory (commit: 85f6038) (details)
  689. Print OMR options in effect into the verbose log (commit: 8b3021d) (details)
  690. Add a method to get maximum heap size for zOS compressedrefs mode (commit: bc31ba4) (details)
  691. Fix formatting (commit: 188a872) (details)
  692. Include omriarv64.h only for ZOS 64bit (commit: 37e866c) (details)
  693. Remove code guarded by TR_OrderedCompiles (commit: 29100d1) (details)
  694. Delete unused sample point code (commit: 6fbc33e) (details)
  695. AArch64: Fix build break (commit: 3d61ebb) (details)
  696. Remove vrand IL opcode (commit: f590028) (details)
  697. Remove vinc/vdec IL opcodes (commit: adf0f11) (details)
  698. Remove vdrem IL opcode (commit: 143f75c) (details)
  699. Remove virem IL opcode (commit: 54c2491) (details)
  700. Remove vrem IL opcode (commit: 4fbff9e) (details)
  701. Remove vcom IL opcode (commit: 5b16c2b) (details)
  702. Remove vucmplt/vucmpgt/vucmple/vucmpge IL opcodes (commit: 54db05a) (details)
  703. Remove vshl/vshr/vushr IL opcodes (commit: 788c38c) (details)
  704. Remove vdmadd/vdmsub/vdnmsub IL opcodes (commit: 9d1ec65) (details)
  705. Remove vicmpall family IL opcodes (commit: 858cf12) (details)
  706. Remove vicmpany family IL opcodes (commit: 0597110) (details)
  707. Remove vdcmpall family IL opcodes (commit: f4f0b41) (details)
  708. Remove vdcmpany family IL opcodes (commit: 3535dc3) (details)
  709. Remove dereferences that crash out-of-process compilations (commit: 2b66131) (details)
  710. Remove wrapper method createJittedMethodSymbol in Compilation (commit: 245fd4c) (details)
  711. Add DummyResolvedMethod flag to OMR Symbol (commit: 316fe47) (details)
  712. Fix iteration in redundant goto elimination (commit: e495805) (details)
  713. Implementing ArrayCopyBNDCHKEvaluator() on AArch64 (commit: b753913) (details)
  714. Enable warnings as errors in compiler component on Linux x86 (commit: 848cf1a) (details)
  715. Fix C4068 (commit: 5ee725f) (details)
  716. Fix C4312 (commit: eedae63) (details)
  717. Fix C4717 (commit: b09bfc2) (details)
  718. Fix C4291 (commit: aa4cbb1) (details)
  719. Fix C4351 (commit: 946ac17) (details)
  720. Fix C4258 (commit: ba0eb3a) (details)
  721. Fix left shift count >= width of type (commit: 82622ed) (details)
  722. Fix -Wformat= (commit: e2ebd2e) (details)
  723. Fix C4065 (commit: 059bd52) (details)
  724. Fix C4101 (commit: 98d46b0) (details)
  725. Fix C4267 (commit: 5cefde1) (details)
  726. Fix C4244 (commit: 6e551ea) (details)
  727. Fix C4018 (commit: 131c4a7) (details)
  728. Fix C4800 (commit: 0f3b2e6) (details)
  729. Fix C4099 (commit: ab19e76) (details)
  730. Fix C4146 (commit: d1f5435) (details)
  731. Fix C4102 (commit: 5527444) (details)
  732. Fix C4267 (commit: 8f54f70) (details)
  733. Fix C4390 (commit: 1fe042d) (details)
  734. Fix C4333 (commit: d6fc12e) (details)
  735. Fix C4244 (commit: 23b6162) (details)
  736. Fix C4345 (commit: 3de4141) (details)
  737. Fix C4996 (commit: 4bbec8c) (details)
  738. Fix C4319 (commit: 5c85392) (details)
  739. Fix C4334 (commit: b96541d) (details)
  740. Fix corner case negation of INT_MIN in constrainIabs (commit: fd52af9) (details)
  741. Fix C4715 (commit: 198114e) (details)
  742. Fix C4305 (commit: a067301) (details)
  743. Enable warnings as errors in compiler component on Windows x86 (commit: 3cbc835) (details)
  744. Migrate warnings as error queries outside of create_omr_compiler_library (commit: 31bfe55) (details)
  745. Apply warnings flags only to C/CXX sources (commit: 9e907fb) (details)
  746. Fix createIntRangeConstraint warning (commit: b2e3cb5) (details)
  747. Add disableStableAnnotations command line option (commit: 2c2ebd2) (details)
  748. Ignore unreachable paths in TR::GlobalValuePropagation::mergeDefinedOnAllPaths (commit: df01f62) (details)
  749. Make InstOpCode an extensible class on ARM (commit: bf65603) (details)
  750. Create skeleton OMRInstOpCode files and classes (commit: faaca57) (details)
  751. Replace includes of ARMOps.hpp with OMRInstOpCode.hpp (commit: 5d05197) (details)
  752. Temporarily inherit TR_ARMOpCode from InstOpCode (commit: 86cef15) (details)
  753. Replace instantiations of TR_ARMOpCode with TR::InstOpCode (commit: 70953c3) (details)
  754. Deprecate TR_ARMOpCode (commit: 088d5c1) (details)
  755. Inline ARMOps.hpp into OMRInstOpCode.hpp (commit: 782e206) (details)
  756. Add common pseudo-instructions to ARM enums (commit: 6b4ce58) (details)
  757. Alias TR_ARMOpCodes with OMR::InstOpCode::Mnemonic (commit: b50d71b) (details)
  758. Deprecate TR_ARMOpCodes in favour of TR::InstOpCode::Mnemonic (commit: fe2f0b5) (details)
  759. Deprecate _opcode in favour of _mnemonic (commit: 257ba18) (details)
  760. Add x87 instructions intended for use with pre-encoded registers. (commit: 059eeca) (details)
  761. Enable SSE3 feature check which will be required for FP calculations (commit: dcfb579) (details)
  762. Propagate CEL4RO31 lookup return code to trace point (commit: e15cc29) (details)
  763. Exploit CEEPCB_3164 indicator bit (commit: 112cce7) (details)
  764. Use common assocreg instruction on x86 (commit: 2200a36) (details)
  765. Use common bad instruction on x86 (commit: ef995bc) (details)
  766. Use common fence instruction on x86 (commit: 116b1ce) (details)
  767. Use common label instruction on x86 (commit: 9fc3a0f) (details)
  768. Use common proc instruction on x86 (commit: 9263c24) (details)
  769. Use common retn instruction on x86 (commit: 00b4508) (details)
  770. Use common vgnop instruction on x86 (commit: 5849cdc) (details)
  771. Remove unused pseudo-instructions on x86 (commit: d317906) (details)
  772. Prefix x86 instruction mnemonic usages with TR::InstOpCode:: (commit: a350864) (details)
  773. Refactor opcode parametarizations in preparation for migration (commit: 0b28027) (details)
  774. Fix accessing NULL lhs or rhs when printing VP in trace (commit: 7226957) (details)
  775. Remove OpenJ9 specific evaluators from z/codegen (commit: ecde3a1) (details)
  776. Use SKIP_ON_* macros to skip CallTest on unsupported platforms (commit: 29eff54) (details)
  777. RISC-V: fix registerExchange() for FP registers (commit: ce144df) (details)
  778. RISC-V: implement registerCopy() for FP registers (commit: 9949cc6) (details)
  779. RISC-V: rename getNumberOfDependencyGPRegisters() to getNumberOfDependencyRegisters() (commit: 72ee978) (details)
  780. RISC-V: increase a number dependency registers to accommodate both all GPRs and all FPRs (commit: 3d133dd) (details)
  781. RISC-V: fix NULLing of register dependencies in `RVSystemLinkage::buildArgs()` (commit: c508805) (details)
  782. RISC-V: take parameter offset into account when passing parameters on stack (commit: 86b4a2b) (details)
  783. RISC-V: fix passing FP arguments when using system linkage (commit: 38d6646) (details)
  784. RISC-V: fix direct calls for resolved methods (commit: fc21c26) (details)
  785. RISC-V: enable CallTest (commit: 862e6cf) (details)
  786. RISC-V: enable linkage tests (commit: 603ea10) (details)
  787. Move definition of PersistentInfo::createCounters to cpp file (commit: b17a7cd) (details)
  788. AArch64: Fix compareIntsAndBranchForArrayCopyBNDCHK() (commit: d4daa7a) (details)
  789. Remove inline keyword from OMR::Optimizer::self in cpp file (commit: 502e5ca) (details)
  790. RISC-V: improve loadConstant64() (commit: 4162462) (details)
  791. New static method initializeFreeMemoryProfileMaxSizeClasses (commit: d5ec0c2) (details)
  792. RISC-V: use either `auto` or explicitly-sized integer types (commit: 8a7f2c0) (details)
  793. Add guarding macro when including OS specific header (commit: b12110c) (details)
  794. Revert "Move definition of PersistentInfo::createCounters to cpp file" (commit: ec0f7f6) (details)
  795. Prefix x86 parameterized instruction mnemonic usages with TR::InstOpCode:: (commit: f7368dd) (details)
  796. Use common bad instruction on ARM (commit: e4fe8b4) (details)
  797. Use common dd instruction on ARM (commit: aba6226) (details)
  798. Use common fence instruction on ARM (commit: 46b56b5) (details)
  799. Use common label instruction on ARM (commit: 54e8adb) (details)
  800. Use common proc instruction on ARM (commit: e054445) (details)
  801. Use common retn instruction on ARM (commit: 6739470) (details)
  802. Use common vgnop instruction on ARM (commit: 8068798) (details)
  803. Prefix ARM instruction mnemonic usages with TR::InstOpCode:: (commit: 8fc31ef) (details)
  804. Enhance warnings as error flag to be language specific (commit: 1a5a46e) (details)
  805. Deprecate OMR_BASE_WARNING_FLAGS (commit: 47f3045) (details)
  806. Add warnings as error and enhanced warnings flags for MASM and NASM (commit: b3689e9) (details)
  807. AArch64: Int32 & Int64 Support for Vector Add (commit: 551857c) (details)
  808. AArch64: Int32 & Int64 Support for Vector Subtract (commit: ea6ff48) (details)
  809. AArch64: Int32 Support for Vector Multiplication (commit: 9b9f82d) (details)
  810. RISC-V: convert some TR_ASSERT()s to TR_ASSERT_FATAL()s (commit: 50dcd28) (details)
  811. RISC-V: convert some C-style casts to C++ casts (commit: 68cbeb8) (details)
  812. Remove ARMOp_ prefix now that mnemonics are enum scoped (commit: 7fe991d) (details)
  813. AArch64: Vector Splat Implementation (commit: 7bac47e) (details)
  814. Check for warnings as error flag definition before using it (commit: 78fd83d) (details)
  815. AArch64: Add arraycopy helpers (commit: 358645c) (details)
  816. Fix -Wformat (commit: 61593b2) (details)
  817. Fix -Wconversion-null (commit: 186ac2f) (details)
  818. Refactor copy to use template for concurrent GC (commit: 66e9c45) (details)
  819. AArch64: Enable Vectorization (commit: 27bd967) (details)
  820. Remove link to obsolete compressed pointers build (commit: c7270ba) (details)
  821. Remove obsolete long parm value profiling code (commit: 4d14598) (details)
  822. Get real MacOS product version if in compability mode (commit: 87fba64) (details)
  823. Invalidate parmInfo for DLT compiles (commit: 6374ead) (details)
  824. AArch64: Assembly helper for arraycopy (commit: 9ed8462) (details)
  825. AArch64: Add TR_Debug::printARM64ArgumentsFlush (commit: dd636ba) (details)
  826. Simplify the logic for identifying minimum free size for sweeping (commit: 81bcea3) (details)
  827. Remove atoe_gets() since gets() is insecure and deprecated (commit: 097a80a) (details)
  828. Version HCR guards even if they are loop transfer candidates (commit: f54d201) (details)
  829. AArch64: Code cleanup (commit: 30b00ab) (details)
  830. AArch64: Use xzr register for storing zero (commit: 96d3cdf) (details)
  831. Add a new verbose option for JITServer (commit: 90f845c) (details)
  832. Fix -Wenum-compare (commit: bd2c683) (details)
  833. Disable -Winvalid-offsetof in OMROptions and FEBase.cpp (commit: 5521972) (details)
  834. Fix CCN5216 (commit: a544b0f) (details)
  835. Fix CCN6101 (commit: e3150dc) (details)
  836. Fix CCN6404 (commit: 75ef1cc) (details)
  837. Add compilePortableCode query (commit: 3b2f598) (details)
  838. Share common logic in SweepHeapSectioning base class (commit: 6ffedb9) (details)
  839. Fix CCN8924 (commit: 8cc9ed4) (details)
  840. Fix CCN5562 (commit: 08d39e6) (details)
  841. Don't use once read symbol heuristics in UseDef at warm (commit: 66d9bde) (details)
  842. Define int3 and ud2 instructions for breakpoints and invalid opcodes (commit: dda2fa5) (details)
  843. Replace TR::InstOpCode::bad with int3 or ud2 instruction (commit: 74d9abc) (details)
  844. Refactoring FPTreeEvaluator in process of removing x87 support. (commit: 3e0c2be) (details)
  845. Refactor float/double to long conversion on x86 to use SSE instead of x87 instructions (commit: b383e11) (details)
  846. Remove unused x87 code from FPTreeEvaluator (commit: f306fad) (details)
  847. Modify f2l conversion to use x87 intructions with pre-encoded registers (commit: f222cc8) (details)
  848. Remove unused f2i,d2i conversion code (commit: d6e5b72) (details)
  849. Remove need for x87 register allocation in fpReturnEvaluator (commit: 23c6eb1) (details)
  850. Remove unused branches, fold branches that are always execute (commit: ab12391) (details)
  851. AArch64: Use ubfm instruction for shift and mask operation if possible (commit: c0c0bd0) (details)
  852. Suspend convlit around inline assembly on z/OS (commit: 6ab9b6d) (details)
  853. AArch64: Use add/sub shifted register instruction if possible (commit: 1f9ed3a) (details)
  854. AArch64: Reuse src registers in `generateMaddOrSub` if possible (commit: a33823a) (details)
  855. AArch64: Enable shifted immediate for add/sub instructions (commit: 72c6a8f) (details)
  856. Use getVirtualCallNodeForGuard() during ValuePropagation (commit: b7314a8) (details)
  857. Add new core dump tool for OSX (commit: cfed42b) (details)
  858. Reduce Scavenger Remember Set Puddle size (commit: acfef7d) (details)
  859. Assert that labels are defined when applying label relocations (commit: 43323d2) (details)
  860. Improve registerExchange API on Z (commit: 8d35797) (details)
  861. AArch64: Use the immediate offset of ldr/str instructions (commit: 27960a0) (details)
  862. AArch64: Use negated constant value for add/sub node if it is more concise (commit: 31a3582) (details)
  863. Revert "Add new core dump tool for OSX" (commit: 51c9c51) (details)
  864. AArch64: Use mov bitmask immediate instruction if possible (commit: 153d75b) (details)
  865. Copy node's children early in OMR::Node::copyValidProperties (commit: dfb3cce) (details)
  866. Modified Concurrent Scavenger conditions to use compiler optimization (commit: 9d28ed0) (details)
  867. Remove self included header (commit: 3eb74bc) (details)
  868. Add IfVectorAPI optimizer flag (commit: 79f2da9) (details)
  869. Cleanup softmx check and apply softmx to nursery expansion (commit: abea738) (details)
  870. Add disableForceInlineAnnotations JIT command line option (commit: 3de8d56) (details)
  871. AArch64: Add helpers for interface PIC (commit: 68b4570) (details)
  872. RISC-V: fix ctor of S-type instruction to respect preceding instruction (commit: 7ca2d34) (details)
  873. AArch64: Implement arraycopyEvaluator() for primitive arraycopy (commit: 479d198) (details)
  874. Revert "Cleanup softmx check and apply softmx to nursery expansion" (commit: 73d89ab) (details)
  875. AArch64: Implement reference arraycopy (commit: 14d6559) (details)
  876. Interpret field offsets in 'block' forms as expressions (commit: 9a92eee) (details)
  877. Define compiler string formatting utilities (commit: cc0a9b8) (details)
  878. Add -Xjit disableVectorAPIExpansion and traceVectorAPIExpansion options (commit: 6826ce3) (details)
  879. Remove the TR_AOT option (commit: c83840b) (details)
  880. Remove TR_DisableCompilationThread option (commit: 2446d4e) (details)
  881. Fold VFTLoad from object of known fixed class (commit: 1818cb1) (details)
  882. Update Copyrights (commit: 75629a8) (details)
  883. Reset _defMergedNodes in global VP on every basic block (commit: f79041a) (details)
  884. Trim trailing whitespace (commit: 2d4ba07) (details)
  885. Fix compiler warnings (commit: 445d19a) (details)
  886. Add job to check line-endings (commit: 35a2b5f) (details)
  887. Disable transforming VFTLoad to loadaddr on Power for nonSVM AOT (commit: ba6f751) (details)
  888. ConcurrentGC Heap/Tenure Expand Fix (commit: 02187e1) (details)
  889. Add document on Loop Canonicalizer and Loop Versioner (commit: 641a90a) (details)
  890. RISC-V: implement areturn evaluator (commit: c69f117) (details)
  891. Fix CCN8924 (commit: ee53df8) (details)
  892. Enable warnings as errors in compiler component on S390 (commit: a04804f) (details)
  893. Fix CCN3296 (commit: 9309637) (details)
  894. Fix ASMA140W (commit: 0563b80) (details)
  895. Fix CCN3068 (commit: 859c4bf) (details)
  896. Fix CCN3280 (commit: 926386e) (details)
  897. Rename LightweightNonReentrantReaderWriterLock to avoid HLASM errors (commit: cc1d056) (details)
  898. Treat warnings as errors on z/OS xlC v2.2 (commit: 13463c9) (details)
  899. AArch64: Change generation of "mov" instruction in register assignment (commit: bccc42a) (details)
  900. Ensure correct instr construction with neg imm using AIX Assembler (commit: 1cccf1b) (details)
  901. Cache known object info on TR::Nodes (commit: c7cb082) (details)
  902. Fix GC scavengerScanOrdering Not Initialized Correctly (commit: 266d49d) (details)
  903. Add symbol for J9JNIMethodID.vtableIndex field (commit: 61f1845) (details)
  904. Prevent compacting NULLCHKs into computed call trees (commit: 2805e95) (details)
  905. Remove redundant code in CompactNullChecks implementation (commit: a8267dd) (details)
  906. Disable verifyGlobalIndices() (commit: 8efff88) (details)
  907. Add setter for TR::Options::_bigCalleeScorchingOptThreshold (commit: 76338d7) (details)
  908. Define nonNullableArrayNullStoreCheck non-helper symbol (commit: 0175216) (details)
  909. AArch64: Add relocation record for second child of ifacmpeq/ifacmpne (commit: 347c244) (details)
  910. Move timestamps in `ScavengerStats` to `Collector` (commit: faac724) (details)
  911. Enable lxvh8x instruction for PPC (commit: c3e28ce) (details)
  912. Check whether relocations are needed for debug counters (commit: cee45b6) (details)
  913. Fix unreadable memory segments when writing core (commit: d064ed6) (details)
  914. Fix IEW2646W (commit: 01fa595) (details)
  915. Disable Internal Pointers for PPC under OptServer (commit: af82460) (details)
  916. Handle hasVectorAPI in Inliner and Optimizer (commit: e2a5864) (details)
  917. AArch64: Fix mulConstant32/64 to use correct instrutions (commit: 9422643) (details)
  918. Cleanup strictfp as all fp operations are now strict (commit: 8af357c) (details)
  919. Enable code coverage setting (commit: 1575de8) (details)
  920. Avoid symbol reference sharing for dummy resolved methods (commit: a0db673) (details)
  921. Improve non-overridden guard optimization in globalVP (commit: c31dd09) (details)
  922. CMake: Fix compile flags on omrgc_tracegen (commit: 92d97a4) (details)
  923. AArch64: Consider snippets size when aborting compilation of huge methods (commit: eab73c7) (details)
  924. Remove unused constants from the inliner (commit: 4d0ca6e) (details)
  925. Use TR_ASSERT_FATAL for TR::MemorySegment asserts (commit: 52016df) (details)
  926. Reintroduce 'Cleanup softmx check and apply softmx to nursery expansion' (commit: 7a3001b) (details)
  927. Fix MPAOL inconsist issue between freeBytes and freeList (commit: f481a5d) (details)
  928. AArch64: Call redoTrampolineReservationIfNecessary() event if label is not null (commit: 06bf6db) (details)
  929. Consolidate binary encoding api for VRR-g,h,i (commit: 0ec3e3d) (details)
  930. Adding Concurrent Mark timing stats in ConcurrentPhaseStatsBase, and additional flags for heap resizing (commit: b6dbaee) (details)
  931. Add documentation on Loop Specializer (commit: c545174) (details)
  932. Add document on reading compilation log (commit: 9c5fd3b) (details)
  933. AArch64: Block registers in regdeps when assigning register for branch instructions (commit: aac1e0a) (details)
  934. AArch64: Correctly handle ificmpeq/ificmpne nodes with many global registers (commit: 05ff62a) (details)
  935. Add an unresolved check for mapOpCode() P10 prefix-instr mapping (commit: df2f617) (details)
  936. Restrict rotate instruction optimization for land nodes (commit: 83b9348) (details)
  937. Prevent a SOF in TR_InductionVariableAnalysis::getEntryValue() (commit: aaa00fc) (details)
  938. Follow up to #5825 (commit: 52c3841) (details)
  939. Allow core dump on OSX to change directories (commit: d61d967) (details)
  940. AArch64: Adding backward arraycopy implementation (commit: 6f2a896) (details)
  941. AArch64: Implement ilbit/llbit evaluators (commit: 8c150fb) (details)
  942. Correct references to omrosdump.c (commit: ff13612) (details)
  943. Define symbol for new jitAcmpneHelper (commit: 8cf034e) (details)
  944. AArch64: Remove a suffix of a double constant (commit: b8b936b) (details)
  945. AArch64: Adding additional arraycopy helper entries (commit: 8e294dc) (details)
  946. New field TLHRemainderCount in CopyForwardStatsCore (commit: fdb29c5) (details)
  947. Split _options and _optionString in OptionSet into separate fields (commit: 1aad2a6) (details)
  948. Remove dummy SimpleRegex (commit: bae713b) (details)
  949. Fix core file not generating on OSX (commit: 5891fb4) (details)
  950. Fix uses of BPX4ENV (commit: 05e5965) (details)
  951. Consider guard or instanceof as escape point in Field Privatizer (commit: c51edad) (details)
  952. Remove SupportedForPRE from instanceof for Field Privatizer bug (commit: 94a7471) (details)
  953. Consider comparisons with null to avoid invalid field privatization (commit: f9c32ab) (details)
  954. AArch64: Change symbol/function declarations in .spp files (commit: e46f68a) (details)
  955. Move arm64asmdefs.inc to runtime directory (commit: 16964b6) (details)
  956. Define <objectInequalityComparison> non-helper (commit: 995bc2a) (details)
  957. Handle aliasing of <objectInequalityComparisonSymbol> non-helper (commit: 5ea759c) (details)
  958. Add nonNullableArrayNullStoreCheck to _commonNonHelperSymbolNames (commit: 6e2ab86) (details)
  959. Define TR_jitLookupDynamic[Public]InterfaceMethod JIT helpers (commit: 31a422d) (details)
  960. Add new OptimizationPlan flag called DisableEDO (commit: c3dc8a4) (details)
  961. Extract type-intersect-location logic from VPClassType intersection (commit: 6be9456) (details)
  962. Use a more specific implied location for intersection in VP (commit: 85d2e95) (details)
  963. Avoid combining a regular type bound with a ClassObject location in VP (commit: d4ba4d4) (details)
  964. Remove redundant definition of TR_acmpHelper (commit: 4832e6f) (details)
  965. Remove non-reference members in OMROption.hpp (commit: 6af0e7d) (details)
  966. Remove 'assumeStrictFP' JIT option (commit: 3baf264) (details)
  967. Add 'Q' prefix handling (commit: 6c39a43) (details)
  968. AArch64: Add convenience functions to generate ubfiz/ubfx instructions (commit: 3cb8aa1) (details)
  969. Add support for AArch64 macOS (commit: 59b030d) (details)
  970. Use newer Ubuntu VMs for Azure pipeline jobs (commit: ed1fe42) (details)
  971. Remove useless OMR_THR_TRACING configuration option (commit: 051232d) (details)
  972. Add classNameToSignature to ClassEnv (commit: cbf479d) (details)
  973. AArch64 macOS: Implement omrsignal_context.c (commit: 229496b) (details)
  974. Replace classNameToSignature with the define in ClassEnv (commit: 90d0dc0) (details)
  975. Remove classNameToSignature (commit: 37c92a2) (details)
  976. Add build assert for OpenJ9 specific file needing refactoring (commit: 9aa824c) (details)
  977. Update github URLs for OpenJ9 (commit: dbb4388) (details)
  978. CMake: fix /safeseh flag (commit: a80b811) (details)
  979. AArch64: Stop using placeholder register for arraycopy (commit: b91736d) (details)
  980. AArch64: Enable GCR Patching (commit: e698c35) (details)
  981. AArch64: Implement Patchable GCRs (commit: 12820d2) (details)
  982. AArch64: Add a method to kill placeholder registers in registrer dependency (commit: 54a8a2d) (details)
  983. Remove unused LabelSymbol nullCompilationId (commit: a54f109) (details)
  984. Cleaning for OMRPORT_CPU_BOUND (commit: 2fc665e) (details)
  985. Port library startup should not return -1 (commit: a97d723) (details)
  986. ConcurrentGC Refactoring & SATB Tuning Methods (commit: 3d87347) (details)
  987. AArch64: Call decReferenceCount() for aladd node (commit: 5d0b3c7) (details)
  988. Fix LabelSymbol constructor to always require a CodeGenerator (commit: 735fa5a) (details)
  989. Add CodeGenerator parm to LabelSymbol::isPatchBarrier() (commit: 771d2c4) (details)
  990. Add a new symbol flag to mark addresses within method bounds (commit: f797475) (details)
  991. Non-functional Core SATB Changes (commit: 7227166) (details)
  992. Ensure that created log files' names start with the specified name (commit: 1a1e980) (details)
  993. Replace uses of sprintf() in OMROptions.cpp (commit: 6b31d7e) (details)
  994. Implement vadd for types ShortVector and ByteVector of size 128 (commit: 49d98ce) (details)
  995. Define getTRPID(char*) for any downstream project that calls it (commit: ff18c36) (details)
  996. Improve port library startup failure return codes (commit: ecab1d4) (details)
  997. Call perror() when SIGSEM_INIT fails in port library startup (commit: 616c339) (details)
  998. Implement vsub for types ShortVector and ByteVector of size 128 (commit: c91ca47) (details)
  999. Define TR_VerboseLog::CriticalSection as a vlog RAII lock guard (commit: 38d242b) (details)
  1000. Replace vlogAcquire()/vlogRelease() pairs with CriticalSection (commit: 04bcb60) (details)
  1001. Remove obsolete overloading of ArrayStoreCHK (commit: 232e20e) (details)
  1002. cmake : don't ignore -DOMR_WARNINGS_AS_ERRORS=OFF (commit: 951d8c1) (details)
  1003. Fix potential NULL pointer use (commit: c4c8f3d) (details)
  1004. On OSX incorporate nano time in wakeUpASyncReporter sem name (commit: be3e588) (details)
  1005. Delete getTRPID(char*) in favour of getTRPID(char*, size_t) (commit: 7c49955) (details)
  1006. AArch64: Support TR_ConstantPool relocation in Constant Data Snippet (commit: 9853f81) (details)
  1007. Prevent OSR transitions from failed guards (commit: 8a06709) (details)
  1008. Do not rematerialize register for class pointer or method pointer (commit: c6a8248) (details)
  1009. Change vmul for IntVectors to use single vmuluwm instruction (commit: 08ac8e9) (details)
  1010. Implement vmul for type ShortVector of size 128 (commit: 5f7c29a) (details)
  1011. Implement vmul for type ByteVector of size 128 (commit: 844927e) (details)
  1012. Add binary encoder unit tests for vmladduhm, vmuleub, and vmuloub (commit: 2d6604f) (details)
  1013. Optimize arrays with stable elements (commit: 447964f) (details)
  1014. Core (Standard) SATB Routines (commit: 7c412d8) (details)
  1015. Add OS detection for Windows 11 and Server 2022 (commit: 5f4fee6) (details)
  1016. Remove VP optimization for obsolete TreeMap method (commit: 24984c0) (details)
  1017. AArch64: Add support for Int32 and Int64 in vnegEvaluator (commit: ce8035a) (details)
  1018. Add findOrFabricateFlattenedArrayElementFieldShadowSymbol (commit: 2ed16c8) (details)
  1019. AArch64: Improve MemoryReference class for array access (commit: 74f8db1) (details)
  1020. Proper Overflow Handling For SATB (commit: a3a5d1b) (details)
  1021. Implement vmul for LongVectors (commit: 132b76b) (details)
  1022. Add binary encoder unit tests for vmulld, vmuleuw, vmulouw, vrld, and vsld (commit: dc75a23) (details)
  1023. Minor cleanup of PRE code (commit: f6ffd12) (details)
  1024. AArch64: Provide factory methods for MemoryReference objects (commit: 74ad991) (details)
Commit 0fce6b3143e050d69cd9ca37b0c1c7dd7b4636e0 by Devin Nakamura
CMake: update DIA registry search handling

Cygwin builds of CMake aren't able to use get_filename_component() to read
from the registry. If we are using a Cygwin build of CMake, instead use
regtool which is provided by cygwin.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 0fce6b3)
The file was modified cmake/modules/FindDiaSDK.cmake (diff)
Commit d0e0cc197f4c988c45604260352b7173ccdabb5c by Dhruv Chopra
Explicitly specify target in Compilation constructor

This is needed so that the codegen is able to set the correct
flags when initializing.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: d0e0cc1)
The file was modified compiler/compile/Compilation.hpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 349d9e7325f37c67bb51a83be8bd0fa7cc372930 by Haley Cao
Added documentation for omrsock API

- Added a simple Linux to omrsock API comparison

Signed-off-by: Haley Cao <haleycao88@hotmail.com>
(commit: 349d9e7)
The file was addeddoc/port/sockets.md
Commit 04030041345edda3d6a8df9a6a9b865c3eff091b by Filip Jeremic
Bump ALS on Z to z10

There are numerous reasons why this change is warranted which are
described below:

- We do not have access to z9 machines to test the project on so the
current unofficial support is untested
- z/OS 2.2 is the minimum supported OMR OS version which has an ALS of
z10, so it is not an issue to drop z9 support from the perspective of
z/OS
- SLES 12, RHEL 7.4, and Ubuntu 16.04 are the minimum supported OS
versions for Linux, and according to [3] z9 is not supported on any of
the OS version specified
- In addition to Centos 7.4 which is based off of RHEL 7.4, meaning
there is no support for z9 systems either
- z9 has been out of service since January 2019 [2]
- Updating the `-march` build flags will allow the compiler to build
the project using z10 instructions which can allow for better C/C++
code to be generated which improves performance (the big one being that
we can use PC relative instructions by default)
- Allows for better code maintenance and reduces complexity of the JIT
compiler, particularly in the area of supporting non-relative based
instruction sequences for z9
- Field research from z/OS OMs and Linux on Z OMs suggest that there is
a very small footprint of users who still have z9 systems, and of those
the % using the latest version of this project will be even smaller, if
not zero
- Officially, no documentation needs to be updated, since we do not
claim support for z9 publicly so the transition can be transparent

[1] https://www.ibm.com/it-infrastructure/z/os/linux-tested-platforms
[2] https://www-03.ibm.com/support/techdocs/atsmastr.nsf/WebIndex/TD105503
[3] https://www.ibm.com/it-infrastructure/z/os/linux-tested-platforms

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 0403004)
The file was modified compiler/z/codegen/OMRPeephole.cpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/env/OMRCPU.hpp (diff)
The file was modified compiler/z/codegen/TranslateEvaluator.cpp (diff)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
Commit 64146b07e306aace327d299c33ee897ec04d7127 by Devin Nakamura
CMake: Fix typo in FindDiaSDK

if(EXISTS ...) does not auto expand variables, like other if() commands

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 64146b0)
The file was modified cmake/modules/FindDiaSDK.cmake (diff)
Commit 991642766425788c2df9b539e098dce5b018e15a by Devin Nakamura
CMake: Fix msvc library detection for RelWithDebInfo

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 9916427)
The file was modified cmake/modules/OmrMsvcRuntime.cmake (diff)
Commit 958b49d01b807458315ed60f6891bf8182ae1e95 by Benjamin Thomas
Switch the Power minimumALS to use OMRProcessorArchitecture

For future use, the Power codegen's instruction properties table
contains a field called minimumALS that describes the first processor
architecture which introduced a given instruction. Previously, this used
the TR_Processor enum, which has since been deprecated in favour of
using the OMRProcessorArchitecture enum from the port library. To keep
this field consistent, it has also been changed to use
OMRProcessorArchitecture.

Signed-off-by: Benjamin Thomas <ben@benthomas.ca>
(commit: 958b49d)
The file was modified compiler/p/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
Commit 0f7c8c32ab922d6084bf35d15cbfce7f81e98dbf by Benjamin Thomas
Fix compiler tests causing lots of warnings

During a previous change, adding the warning flags was moved into
omr_add_executable and omr_add_library. Unfortunately, the OMR compiler
is not yet ready to be compiled with warnings and this causes the
compiler tests to spam lots of warnings. To correct this, these
functions now accept an extra "NOWARNINGS" option that disables this
behaviour, which the OMR compiler uses for its tests and examples.

Fixes: #5296
Signed-off-by: Benjamin Thomas <ben@benthomas.ca>
(commit: 0f7c8c3)
The file was modified fvtest/tril/test/CMakeLists.txt (diff)
The file was modified jitbuilder/release/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified fvtest/jitbuildertest/CMakeLists.txt (diff)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
The file was modified fvtest/tril/tril/CMakeLists.txt (diff)
The file was modified fvtest/compilertriltest/CMakeLists.txt (diff)
The file was modified fvtest/compilerunittest/CMakeLists.txt (diff)
The file was modified fvtest/tril/examples/mandelbrot/CMakeLists.txt (diff)
The file was modified fvtest/tril/examples/incordec/CMakeLists.txt (diff)
Commit 4db59eba6ab165fdfa1fa662b30780f074f081ef by Damian Diago Dmonte
Merge Shared Memory Routines from OpenJ9 to OMR

Merge omrport shared memory routines in support of porting the refactored OpenJ9 shared cache into OMR.

Issue: #4610

Co-authored-by: Mark Thom <markjordanthom@gmail.com>
Co-authored-by: Damian Diago D'monte <damian.dmonte@unb.ca>

Signed-off-by: Damian Diago D'monte <damian.dmonte@unb.ca>
(commit: 4db59eb)
The file was modified include_core/omrport.h (diff)
The file was modified port/port_objects.mk (diff)
The file was modified port/unix/omrsharedhelper.h (diff)
The file was modified port/unix_include/omrportpg.h (diff)
The file was modified include_core/omrporterror.h (diff)
The file was modified port/unix/omrsharedhelper.c (diff)
The file was modified port/unix/omrsysv_ipcwrappers.h (diff)
The file was addedport/unix/omrshmem.c
The file was modified port/common/omrport.c (diff)
The file was modified port/omrportpriv.h (diff)
The file was modified port/CMakeLists.txt (diff)
The file was addedinclude_core/omrshchelp.h
The file was modified port/common/omrport.tdf (diff)
The file was modified port/unix/omrsysv_ipcwrappers.c (diff)
The file was addedport/unix/omrshmem.h
Commit 91e5571aabece7f4913181ca89724cb24bbdef9a by Akira Saitoh
AArch64: Fix order of calls to maintain the proper live state of registers

This commit fixes evaluators where `TR::CodeGenerator::decReferenceCount()`
is issued before a `TR::Node::setRegister()`, which kills the register too early.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 91e5571)
The file was modified compiler/aarch64/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
Commit 2120888edd76e12e3b8a2bd4adfd92d8b02990aa by Akira Saitoh
AArch64: Add a method to kill temporary registers added to register dependency

Add `stopUsingDepRegs` to the register dependency class for properly killing
temporary registers added to the dependency.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 2120888)
The file was modified compiler/aarch64/codegen/ARM64SystemLinkage.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
Commit 104d2c31552bce043020f957a6f9e13a953eac7f by Rahil Shah
Fixes in RegDepCopyRemoval for postGRA block splitter

RegDepCopyRemoval is the last ran optimization which intends to reduce
register shuffling due to global register dependencies. It was
generating tree where we have a PassThrough Child under PassThrough to
copy node to new virtual register. This tree was not working well with
the post GRA block splitter. Issue was that PassThrough child
encountered in GlRegDeps was anchored to tree top. In postGRA block
splitter, it records the regStores encountered before the GlRegDeps in
extended basic block to guide decision on which register to chose for
the node after split point.In this commit, adding changes to both
splitPostGRA block splitter and RegDepCopyRemoval optimization so that
we can split the blocks after later has run.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 104d2c3)
The file was modified compiler/optimizer/RegDepCopyRemoval.hpp (diff)
The file was modified compiler/optimizer/RegDepCopyRemoval.cpp (diff)
The file was modified compiler/il/OMRBlock.cpp (diff)
Commit e2bb845af7cf4df7240431d864af758e3afee04c by Rahil Shah
Handle PassThrough in ILChildValidator

It is possible to have a PassThrough as a child node of regular node.
When we are validating the children of a node, we need to make sure that
when we see a PassThrough child, it gets real child that represents the
node and check its type with parent.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: e2bb845)
The file was modified compiler/ras/ILValidationRules.cpp (diff)
Commit 1a59d02343871e6b9dea06d4666b3b578083896c by Ryan Shukla
Fix x gprClobberEvaluate to ensure correct gc flags are set on new register

The method gprClobberEvaluate may allocate a new register. In this case, the
new register may need to be flagged as a collected reference or an internal
pointer. This commit ensures that these two flags are propagated from the old
register.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: 1a59d02)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
Commit c0843bb7a75e1fde4dcbb1dd0a4008ef3893c610 by Ryan Shukla
Fix x iselectEvaluator to ensure correct gc flags are set on result register

- Use `TR::Register::containsCollectedReference()` instead of
  `TR::Node::isNotCollected()` to check if the false register contains a
  collected reference. `isNotCollected` should not be used after lower trees as
  it does not handle nodes that convert between integral and address types.

- Add assert which will fail if one of the children of the select node is an
  internal pointer. Internal pointers cannot be handled since we cannot set the
  pinning array on the result register without knowing which side of the select
  will be taken.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: c0843bb)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
Commit a2b3d90384a83ec35fbef3e6e6c00836c44dfd2e by Ryan Shukla
Fix z selectEvaluator to ensure correct gc flags are set on result register

- Use `TR::Register::containsCollectedReference()` instead of
  `TR::Node::isNotCollected()` to check if the false register contains a
  collected reference. `isNotCollected` should not be used after lower trees as
  it does not handle nodes that convert between integral and address types.

- Add assert which will fail if one of the children of the select node is an
  internal pointer. Internal pointers cannot be handled since we cannot set the
  pinning array on the result register without knowing which side of the select
  will be taken.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: a2b3d90)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
Commit 880d959d50b2376644b59f662e964f0ba1f1ea10 by Ryan Shukla
Fix aarch64 iselectEvaluator to ensure correct gc flags are set on result register

- Add code to flag the result register as a collected reference if the false
  register contains a collected reference.

- Add assert which will fail if one of the children of the select node is an
  internal pointer. Internal pointers cannot be handled since we cannot set the
  pinning array on the result register without knowing which side of the select
  will be taken.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: 880d959)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
Commit f3c45015f69e712d33ac86c423260a57374b776e by Ryan Shukla
Fix riscv gprClobberEvaluate to ensure correct gc flags are set on new register

The method gprClobberEvaluate may allocate a new register. In this case, the
new register may need to be flagged as a collected reference or an internal
pointer. This commit ensures that these two flags are propagated from the old
register.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: f3c4501)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
Commit da1333ec1895fcca3ca15b4eba0162252e0a5944 by Ryan Shukla
Fix riscv iselectEvaluator to ensure correct gc flags are set on result register

- Add code to flag the result register as a collected reference if the false
  register contains a collected reference.

- Add assert which will fail if one of the children of the select node is an
  internal pointer. Internal pointers cannot be handled since we cannot set the
  pinning array on the result register without knowing which side of the select
  will be taken.

Issue: https://github.com/eclipse/openj9/issues/8397

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: da1333e)
The file was modified compiler/riscv/codegen/ControlFlowEvaluator.cpp (diff)
Commit 58d2d97b04ac152d34a5b49d1d9647232151dbd1 by Benjamin Thomas
Improve the Tril tests for select opcodes

The previous Tril tests for select opcodes were incomplete and did not
test a number of corner cases. For instance, only select opcodes with a
compare as their first child were being tested. These tests have been
expanded to cover more cases.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 58d2d97)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
Commit 0987b885d87d2dae51adf1133ee56bc966ab6ed5 by Benjamin Thomas
Skip iselect + bcmp* and scmp* tests on Z

The Z codegen currently has a known bug with sub-integer compares as the
first child of an integral select opcode. The tests for this have been
temporarily disabled until this can be resolved.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 0987b88)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
Commit d1a2969f122752753c29adff3ec7a9f717024bd9 by Benjamin Thomas
Skip iselect + bcmp* and scmp* tests on x86

The x86 codegen currently has a known bug with sub-integer compares as
the first child of an integral select opcode. The tests for this have
been temporarily disabled until this can be resolved.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: d1a2969)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
Commit f0d0291cf5e2c102f26e627dfdf0131e05c90a4d by Benjamin Thomas
Fix spelling of is16BitUnsignedImmediate function

Signed-off-by: Benjamin Thomas <ben@benthomas.ca>
(commit: f0d0291)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit 5ed32edb34edf7c4f3716a348135aac5df448f1d by Benjamin Thomas
Implement a helper to evaluate a node to a condition register

In certain evaluators (e.g. *select), a selector value needs to be used
as a condition in ICF. Previously, compare nodes would need to be
evaluated to a GPR, then the GPR would be compared against 0. This was
obviously inefficient, since it's possible to evaluate most comparisons
directly to a condition register in 1-2 instructions. Some evaluators
had special handling for this, but this handling was not uniform and
would frequently miss corner cases.

To address this and allow for better optimization opportunities, a new
helper has been added which evaluates a node to a condition register and
returns the condition which is true if the node was non-zero. For
compare nodes, the comparison will be performed directly into a
condition register. For other types of nodes, the old behaviour of
evaluating the node to a GPR and comparing that against 0 will be used.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 5ed32ed)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit 8ed69bc48517f7f365874db3048c4a8a2ec513b3 by Benjamin Thomas
Remove the concept of flipped CCRs from the Power codegen

In order to avoid FXU rejects on POWER6 chips, the Power codegen
contains logic to flip the order of operands when performing a
comparison when determined to be necessary.

Unfortunately, the implementation of this optimization left much to be
desired. The generateTrg1Src2Instruction helper would set a special flag
on the target register and silently flip the compare operand order if it
was deemed to be necessary. The generateConditionalBranch helper (and
related helpers) would then check this flag to determine whether they
needed to flip the branch. This is obviously very surprising and also
doesn't correctly handle CR logical instructions.

Since the evaluation of comparisons to a condition register has now been
centralized in evaluateIntCompareToConditionRegister, the logic can now
be moved there, with the condition returned being flipped rather than
using hacky flags. This should prevent any unfortunate mistakes in the
future.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 8ed69bc)
The file was modified compiler/p/codegen/GenerateInstructions.cpp (diff)
The file was modified compiler/p/codegen/OMRRegister.hpp (diff)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit 2f1baf8f392be997ea6c7c5a1370c232abc0e503 by Benjamin Thomas
Refactor the Power select evaluators

The Power evaluators for *select opcodes have been significantly
refactored to be much simpler. Additionally a number of new
optimizations have been added to reduce the overhead of these opcodes:

1. Selector nodes which are compares are now evaluated directly to a
   condition register to avoid the overhead of evaluating them and then
   comparing the result against 0.
2. The register for one of the operands is reused if possible to avoid
   an extra mr/fmr instruction.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 2f1baf8)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit bcd8e5737394016619421465218558200d1d9d9f by Benjamin Thomas
Remove the iselect control flow instruction

The previous implementation of iselect node evaluation used a control
flow instruction called iselect to implement its control flow. Since the
new implementation uses ICF instead, this instruction is no longer
needed.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: bcd8e57)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/PPCBinaryEncoding.cpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit 2b9283ebce19c0150fa714ffae4ecd50a774354d by Benjamin Thomas
Implement isel exploitation in the select evaluators

Power has long had an instruction for branchlessly selecting between two
GPRs based on a condition register bit. Unfortunately, performance of
this instruction left much to be desired until POWER10. Now that POWER10
has improved performance of this instruction, exploitation of it can be
added to the relevant select evaluators.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 2b9283e)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit bc037b15ff00692333f434b1483fb4d2a2e522cd by Benjamin Thomas
Add internal pointer assert to Power select evaluator

The select evaluator in the Power codegen cannot handle select nodes
with children that are internal pointers, since information about the
pinning array pointer would be lost. An assert has been added to verify
that internal pointers are not passed to this evaluator.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: bc037b1)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit f09371ba05dbb0ee3befbb0aced478291d2ea467 by Dhruv Chopra
Deprecate uses of getSupportsArch in Z codegen

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: f09371b)
The file was modified compiler/z/codegen/OMRPeephole.cpp (diff)
Commit a42b15062de7faa1629946b634341ddef19a7e9a by Dhruv Chopra
Use Snippet to load methodPointer in remote compile

Relocatable compiles such as remote compilations in
openj9 don't allow the use of PC relative instructions like
LARL. This commit prevents the use of such an instruction when
tring to load a methodPointerConstant.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: a42b150)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit e855952ed188dc04e8bb03b34a9f9f15be154159 by Dhruv Chopra
Restrict LARL-use in genLoadAddressConstant

Don't generate PC-relative instructions for remote
compilations.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: e855952)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 7c33de981d4f9a0e5658eb02abdf7791a7e23597 by Akira Saitoh
AArch64: Fix memory reference to kill registers properly

When the node of memory reference is `aconst`/`iconst`/`lconst`,
a base register may not be killed in `decNodeReferenceCounts`
because both `_baseRegister` and `_baseNode` are not NULL.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 7c33de9)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
Commit 50b3ca6136218231dbb47dad260a1cf7b5729ca3 by Akira Saitoh
AArch64: Implement Register Association

Implement Register Association for aarch64.

- Introduce `assocreg` pseudo instruction.
- Keep track of the real register to virtual register mappings
  which are set up by register dependencies.
- Emit `assocreg` instructions at the end of every extended basic block.
- Emit `assocreg` instructions when setting up register dependencies.
- In register assignment phase, update virtual register to real register mappings
  when we encounter an `assocreg` instruction.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 50b3ca6)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.hpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
Commit 512a8173646c917c882d35bc4fb00a1feb101dc2 by Akira Saitoh
AArch64: Enhance findBestFreeRegister to use register associations

This commit changes `OMR::ARM64::Machine::findBestFreeRegister`
to use register associations for a better decision.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 512a817)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
Commit 82b157184cee2e6b0ffce50ab406a4de5e974bbd by Akira Saitoh
AArch64: Enhance freeBestRegister to use register associations

This commit changes `OMR::ARM64::Machine::freeBestRegister`
to use register associations for a better decision.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 82b1571)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
Commit acc04eeaea9d292dce9c2420566c45afc92a1304 by Keith W. Campbell
Add missing parentheses in macro definition

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: acc04ee)
The file was modified include_core/thread_api.h (diff)
Commit 36afd3246c0a0c89ffe5d58a5a3ce9a5d23839fb by Keith W. Campbell
Relocate additions for omrshmem at the end of the file

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 36afd32)
The file was modified port/common/omrport.tdf (diff)
Commit 09eadc36dc55d5e4c1b1dd58b4ceafdcbc5cfe80 by Devin Nakamura
CMake: Add omrsig to omr_ddrgen rpath on aix

Ensures that omrsig can be found when executing omr_ddrgen

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 09eadc3)
The file was modified ddr/tools/ddrgen/CMakeLists.txt (diff)
Commit b3cfdbd25d2b85b712ff57ac9612741509dbcd46 by Julian Wang
Stop referencing TOCBaseRegister on POWER10

After  disableTOC is turned on in POWER10 and TOCBaseRegister is about to
be recovered as a usual preserved register, we should get rid
of any reference to TOCBaseRegister. Otherwise, we will crash
in register assignment phase.

We set the baseRegister in the fake memRef to NULL
instead, given the pTOC is full by definition due to disableTOC.

Set up gr12 for systemLinkage dispatch for LE Linux naturally
through PC-relative constant snippet or direct materialization.

Signed-off-by: Julian Wang <zlwang@ca.ibm.com>
(commit: b3cfdbd)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
Commit 9cd45bda3a02e703948621e3170b00feface2aa0 by Akira Saitoh
AArch64: Add real register mask

This commit adds real register mask enum entries for aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 9cd45bd)
The file was modified compiler/aarch64/codegen/OMRRealRegister.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRealRegister.cpp (diff)
The file was modified compiler/aarch64/codegen/RealRegisterMaskEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
Commit 55ce666b5ffd2115c9aa49a1d49ae8c09e07e9fd by Akira Saitoh
AArch64: Change Register Assigner to use live register information

This commit changes `findFreeBestRegister` and `freeBestRegister`
to use live register information for better decision.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 55ce666)
The file was modified compiler/aarch64/codegen/OMRRegister.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
Commit f6b166d8095b6966e099df2ad538df35d31326df by Akira Saitoh
AArch64: Enable Live Registers

This commit enables Live Registers for aarch64 code generator.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: f6b166d)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit a6c8e63619565c7d2bd1bf02197de8cb49e7df5b by Akira Saitoh
AArch64: Implement regMaskToRealRegister method

This commit implements `OMR::ARM64::RealRegister::regMaskToRealRegister`.
It also removes unnecessary aarch/codegen/RealRegister.hpp.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: a6c8e63)
The file was removedcompiler/aarch64/codegen/RealRegister.hpp
The file was modified compiler/aarch64/codegen/OMRRealRegister.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRealRegister.hpp (diff)
Commit 53036d4facd92de01af7585562ea58efc4bd5a82 by Jan Vrany
RISC-V: implement fcmpl, fcmpg, dcmpl and dcmpg

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 53036d4)
The file was modified compiler/riscv/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
Commit 75c550b3bb33e6064f2d16ff79448347460cc9c0 by Akira Saitoh
AArch64: Change register dependency to set up live register information

This commit changes register dependency class to set up
live register information.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 75c550b)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit 5c60338966f660ab6fbb4695dd7ed2c775e450ac by Akira Saitoh
AArch64: Fix memory reference for indirect load of const node

This commit fixes a problem of memory reference when
root node is indirect load and the child of that node
is const. The problem was introduced by OMR #5520.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 5c60338)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
Commit 172ab8023617f77bfddb224e7398c03187970425 by Akira Saitoh
AArch64: Use placeholder registers

This commit makes following changes to register dependencies and instruction class.
- Change `addDependency()` helper method to set place holder flag of virtual register
if the virtual register is allocated in the method.
- Add `useRegister()` method to `OMR::ARM64::Instruction` class to reset place holder
flag if the virtual register is actually used by an instruction.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 172ab80)
The file was modified compiler/aarch64/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGeneratorUtils.hpp (diff)
Commit 44e34feca27d34889daacbe458e5862148fd72a6 by Salman Rana
Expand Dispatcher Wait Loop Exit Assert

For background see eclipse/openj9#10491 (comment)

- Existing assert expanded in `MM_ParallelDispatcher::workerEntryPoint`
to cover task dispatch during shutdown
- Asserting more strictly with new assert in added else clause

Fixes: eclipse/openj9#10491

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 44e34fe)
The file was modified gc/base/ParallelDispatcher.cpp (diff)
Commit b9dc9164a863e93cb2dd203f14eccdf6b42b3bd4 by Devin Nakamura
CMake: Add support for cygwin paths when using msvc

Pass paths through cygpath when generating ddr files, so  that they will
be understood by msvc

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: b9dc916)
The file was modified cmake/modules/OmrUtility.cmake (diff)
The file was modified cmake/modules/ddr/GenerateStub.cmake (diff)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
Commit 2554ffcc0e6140ec9230012b1fa47bf57f79571c by jackie.midroni
Add static MemoryReference creation helpers

-Added static helper for each MemoryReference constructor
-Renamed/refactored withDisplacement and withLabel helpers to createWithDisplacement
and createWithLabel to match naming convention of other helpers

Signed-off-by: Jackie Midroni <jackie.midroni@mail.utoronto.ca>
(commit: 2554ffc)
The file was modified compiler/p/codegen/MemoryReference.hpp (diff)
The file was modified fvtest/compilerunittest/p/MemoryReferenceExpansion.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified fvtest/compilerunittest/p/Util.hpp (diff)
The file was modified fvtest/compilerunittest/p/BinaryEncoder.cpp (diff)
Commit 6f963906a95d8a24d8ab1bcf4ccab3867a077a6d by Liqun Liu
Add popfd and pushfd opcode

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 6f96390)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
Commit 5ba456b7b577e7db2166553afb74bf108a844c87 by Liqun Liu
Add a function to break on DF set

Add a function to generate DF flag check in JITCODE and trap when DF is
incorrectly set. Downstream project can add the check to any places they
want.

The motivation of this check is to catch a case where memory can be
corrupted due to incorrect DF flag affecting `rep` instructions. One
case is found in Openj9 but the memory corruption is hard to reproduce
and not all memory corruption can result in a test failure or crash.

However a wrong DF flag should be easier to detect if the check is
executed frequently enough.

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 5ba456b)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
Commit d1e6b9efd5cb23660f29cb1f5216d5b8a2127462 by Benjamin Thomas
Add default TR_ASSERTs to enum switch statements

There are some switch statements on enum classes in
ControlFlowEvaluator.cpp that were previously missing default cases.
While these switches are exhaustive, the way enum classes work in C++
means that technically any int can be used, so default cases are needed
to make sure that such errors are caught.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: d1e6b9e)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit a4fae6c9f20d3aabc8b8fd4b2679c70ef320f0bd by jackie.midroni
Replace MemoryReference constructors with static helpers

All instances where MemoryReference objects were created using a direct
call to a MemoryReference constructor were replaced with a call to the
corresponding static helper method

Signed-off-by: Jackie Midroni <jackie.midroni@mail.utoronto.ca>
(commit: a4fae6c)
The file was modified compiler/p/codegen/MemoryReference.hpp (diff)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.cpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
The file was modified fvtest/compilerunittest/p/Util.hpp (diff)
The file was modified compiler/p/codegen/TreeEvaluatorVMX.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/GenerateInstructions.cpp (diff)
The file was modified fvtest/compilerunittest/p/Peephole.cpp (diff)
The file was modified compiler/p/codegen/OMRMachine.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.hpp (diff)
The file was modified fvtest/compilerunittest/p/MemoryReferenceExpansion.cpp (diff)
The file was modified compiler/p/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit d82b6ef8780c9ba757bb20aae3f37370e4262d44 by jackie.midroni
Remove and replace legacy MemoryReference constructor

Previously, there were two MemoryReference constructors that accepted a
displacement as one of its parameters: one that took it as an int32_t
(a legacy constructor) and one that took it as an int64_t. To ensure
that a call to either one of these constructors was never ambiguous,
an extra int parameter was added at the end of the int64_t constructor.
With this commit, the legacy constructor has been removed and replaced
with the int64_t one, and the extra int parameter has been removed

Signed-off-by: Jackie Midroni <jackie.midroni@mail.utoronto.ca>
(commit: d82b6ef)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/p/codegen/MemoryReference.hpp (diff)
Commit 48c3e0b365f182946dbbc14bb550d92bc4d99075 by jackie.midroni
Change MemoryReference constructors from public to private/protected

Since MemoryReference constructors should no longer be called directly to
create MemoryReference objects, they have been changed from public to
private/protected

Signed-off-by: Jackie Midroni <jackie.midroni@mail.utoronto.ca>
(commit: 48c3e0b)
The file was modified compiler/p/codegen/MemoryReference.hpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.hpp (diff)
Commit dccbaf29e282dbb43596838060f6336973fcfeba by Harry Yu
Remove old processor detection code

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: dccbaf2)
The file was modified compiler/z/env/OMRCPU.cpp (diff)
The file was modified compiler/z/env/OMRCPU.hpp (diff)
Commit c981d5c0e47f8e34237236e68db4a20f978cd906 by Rahil Shah
Remove Unsafe.copyMemory transformation from OMR

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: c981d5c)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.hpp (diff)
Commit cbacb9a766dfac24ad77b4b792ff276864a45bdf by Benjamin Thomas
Add sbyteswap and lbyteswap to opcode tables

The new sbyteswap and lbyteswap opcodes for performing byte-reversals of
16- and 64-bit integers have now been added to the necessary opcode
tables.

Closes: #5517
Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: cbacb9a)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 6df85c100d692c358a2b22c5476e66e1e22c7431 by Benjamin Thomas
Add a flag to indicate codegen support for byteswaps

In order for language frontends to be able to make use of the new
byteswap opcodes, they need a way to determine whether the codegen for
the architecture they're running on supports these opcodes. To allow
this, a new flag has been added to indicate codegen support for
sbyteswap, ibyteswap, and lbyteswap.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 6df85c1)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
Commit 7d68a30e865cf9d4b6381eea7345648340629123 by Benjamin Thomas
Remove the old getSupportsIbyteswap() query

Previously, codegens could declare support for the ibyteswap opcode by
overriding a virtual function called getSupportsIbyteswap(). It is now
expected that codegens will implement support for all of the byteswap
opcodes at the same time. Additionally, this query was never previously
used, so it has now been removed.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 7d68a30)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
Commit 8e2a3a7ea32d223fe16f387658b29c78746e8f24 by Benjamin Thomas
Implement sbyteswap and lbyteswap on Power

The sbyteswap and lbyteswap opcodes are now supported in the Power
codegen using code taken from OpenJ9's handling of the recognized
Short.reverseBytes and Long.reverseBytes methods.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 8e2a3a7)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit 9cff620f54798fdb977dd2400168abd81fdbd04d by Benjamin Thomas
Implement sbyteswap and lbyteswap on x

As it turns out, the x codegen already has the code necessary to support
sbyteswap and lbyteswap in OMR. The tree evaluator tables have thus been
updated to enable this support.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 9cff620)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit f5e75be55b3f78012e65a76b4d9589bcca14134a by Benjamin Thomas
Implement the byteswap opcodes on Z

Previously, the Z codegen had the necessary code in OMR to support the
sbyteswap, ibyteswap, and lbyteswap opcodes. However, this was not yet
exposed to OMR consumers via implementing these opcodes. This code has
now been enabled for implementing these opcodes.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: f5e75be)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit c58cb61de7db0f817654c3e8692f23f4d4964a8e by Benjamin Thomas
Add byteswap Tril tests

New Tril tests have now been added to test the sbyteswap, ibyteswap, and
lbyteswap opcodes.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: c58cb61)
The file was modified fvtest/compilertriltest/LogicalTest.cpp (diff)
Commit 338560d9cb208d4ae71af28139c562226e4ff80a by Benjamin Thomas
Remove unneeded asserts from byteswap evaluators

Previously, the evaluators for byteswap on all architectures contained
checks against the number of children on the node being evaluated.
However, the IL validator should already be checking this, so these
asserts are not needed.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 338560d)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 47803ad8a4e478bf7e5af60e693d9f6e865233b0 by Harry Yu
Remove old processor detection code on Power

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: 47803ad)
The file was modified compiler/p/env/OMRCPU.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/env/OMRCPU.hpp (diff)
Commit e3d1611839f886d814ea0076954b803b7c041af5 by Daryl Maier
Initialize RX Compilation setting before CodeGenerator construction

The readOnlyCode setting may be needed during CodeGenerator initialization.

Issue: #5542

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e3d1611)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
Commit 98c6c844a41c853833151473354dcb562a270b49 by mpirvuca.ibm.com Pirvu
Check whether TLS storage for comp object was created before freeing it

When the JIT fails initialization it proceeds with the
shutdown routines. In here the JIT tries to deallocate
the TLS storage for the compilation object. However,
because the JIT failed so early, this storage might
not have been allocated in the first place.
This PR checks whether the TLS storage was allocated
before attempting to free it.

Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
(commit: 98c6c84)
The file was modified compiler/control/CompilationController.cpp (diff)
The file was modified compiler/control/OptimizationPlan.hpp (diff)
Commit 66a8c6791b774f70d0face8c4dc8395df7580c1c by Jonathan Oommen
Add Dynamic Breadth First Scan Ordering to the GC

Add Dynamic Breadth First Scan Ordering to the GC implemented
using JIT hot fields. This enables the copying of a hot field
marked by the JIT immediately after the object containing the
hot field is copied during a Scavenge.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: 66a8c67)
The file was modified example/glue/ObjectModelDelegate.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified gc/base/EnvironmentBase.cpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
Commit a7279e17a2c9b005ed84e1b1bf2ed67cc6a7dd4c by Daryl Maier
Remove X86VFPCallCleanupInstruction assignRegister assert

The assert is too restrictive.  It has been in place for a very long time
and I believe the situation it is trying to prevent is one where a register
spill is inserted in between the call instruction and the VFP cleanup
instruction (because the spill instruction uses the stack pointer and may
get an incorrect offset).  Restricting this special instruction's use to
ICF regions would ensure that because (in theory) no spilling should be
happening within an ICF.  Hence the assert.

However, there are circumstances in carefully constructed call sequences
where this instruction could be used outside of an internal control flow
region where register assignment and spilling won't be a problem between
the call instruction and the VFP cleanup instruction.

Like any instruction, when used properly in the right context this
instruction will behave correctly.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a7279e1)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
Commit 9a5314e4324af75d6b8443f26d34fea7a07c50aa by Jan Vrany
RISC-V: fix compilation error introduced by f3c45015f6

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 9a5314e)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
Commit 94f7e54fedf32f4b6e8d4492593ec7a0e2fc88de by Irwin D'Souza
Disable recomp in read only code cache

A read only code cache cannot support recompilation, because new method
bodies cannot be placed into a protected code cache. Hence this commit
disables recompilation when read only code cache is enabled.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 94f7e54)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 2884fd7d99a62e0fd299b0dd13e61887fda8d0d0 by Daryl Maier
Calls to labels do not require trampolines

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2884fd7)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
Commit 38363088df7e2e7afad8ac9ae997edf2365191eb by Irwin D'Souza
Disable side-effect guards under read only code cache

Side-effect guards can require runtime assumptions that have to patch
the code, which is not allowed. Therefore, disable the generation of
side-effect guards until such time as the runtime assumptions can patch
a write-able data area, rather than the code cache.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 3836308)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 7f0cab950a9f9be98d085ef21a2eb36b3ee9a6da by Benjamin Thomas
Simplify the Power ZEROCHK evaluator

Previously, the ZEROCHK evaluator in the Power codegen had a lot of
special casing to try to perform comparisons directly into condition
registers. Since functionality has now been added to perform this
optimization in a more general manner, this code can now be replaced
with a simple call to evaluateToConditionRegister.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 7f0cab9)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit 43d52a2522956d511fb3939c299f826f6c40bed6 by Benjamin Thomas
Remove cmp2branch

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 43d52a2)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
Commit 258384916f4f40bce6bb6e5b58ba538aa3ed4898 by Devin Nakamura
CMake: Fix omr_ddrgen on aix

Fix INSTALL_RPATH as older versions of cmake do not expand generator
epxressions in this property

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 2583849)
The file was modified ddr/tools/ddrgen/CMakeLists.txt (diff)
Commit 4d754a88d541add242c759ad967f48b944ddf0fd by Jonathan Oommen
Add Language Specific Changes for Dynamic BF Scan Ordering

Add language specific changes for Dynamic Breadth First Scan Ordering
to allow for proper functionality of Dynamic Breadth First Scan Ordering.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: 4d754a8)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
Commit 1421fca58310b5a2fd691523d8bec7700fd67d51 by Daryl Maier
Introduce RX code address inquiry functions

Two functions are provided for asking whether a given code cache address resides
in a read-only (RX) code cache or not.  While their primary motivation is to be
used at runtime they can be used at either compile-time or runtime.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 1421fca)
The file was modified compiler/runtime/OMRCodeCacheManager.cpp (diff)
The file was modified compiler/runtime/OMRCodeCacheManager.hpp (diff)
Commit d5e632a9949feb841e286b7408c77a5b319e2d52 by Daryl Maier
Remove deprecated code from StoreSinking

The previous cleanup deprecated store sinking code in #3893 left some unreachable
remnants behind.  Remove them now.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: d5e632a)
The file was modified compiler/optimizer/SinkStores.cpp (diff)
The file was modified compiler/optimizer/SinkStores.hpp (diff)
Commit 90b975bf9cdcd13acdae2ec7e550e8aa01327b83 by Irwin D'Souza
Add pointer to owning metadata in sentinel assumption

This commit facilitates the ability to serialize runtime assumptions.
Any assumptions that have to be deserialized (i.e. reified) is inserted
into the RAT as well as a circular linked list dangled off of the
metadata for the body - this is the paradigm used in OpenJ9 anyway. As
such, this commit adds a field to the sentinel assumption to point to
the owning metadata so that that information can also be serialized.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 90b975b)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
Commit de88e26b1b114654c980692c81bf93a92cc1cf23 by Irwin D'Souza
Add serialize and size APIs

Add APIs to allow assumptions to be serialized and provide their size.
However, enforce that the default implementation is never used.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: de88e26)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
Commit 5b469e268ef379831958d2887f2bbdfb74345a46 by Irwin D'Souza
Add missing param to serialize API

The API to serialize a runtime assumption should also take the owning
metadata, as that information would be necessary during reification if
the desire is to attach those runtime assumptions targetting a
particular compiled body with a metadata structure associated with said
compiled body.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 5b469e2)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
Commit 050212c48caf1a5c78e1e12c35e5f3c5da1ea02c by Daryl Maier
Replace uses of TR::comp() with cheaper alternatives

The `TR::Compilation` object is sometimes fetched from TLS (via `TR::comp()`)
when there are cheaper alternative means available (e.g., fetching it from
a `TR::CodeGenerator` object).  Replace some obvious candidates.  Also,
when the TLS version must be used, optimize its use to avoid repeated calls
in the same method.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 050212c)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.hpp (diff)
The file was modified compiler/p/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/optimizer/LoopReplicator.cpp (diff)
The file was modified compiler/z/codegen/S390Debug.cpp (diff)
The file was modified compiler/optimizer/InductionVariable.cpp (diff)
The file was modified compiler/optimizer/VirtualGuardHeadMerger.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.hpp (diff)
The file was modified compiler/z/codegen/ConstantDataSnippet.hpp (diff)
The file was modified compiler/z/codegen/BinaryAnalyser.cpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/X86Ops_inlines.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.hpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.hpp (diff)
Commit 297d34630c6c9278c10a07d48390706c13ba59e5 by Kazuhiro Konno
AArch64: Implement byteswap evaluators

This commit implements byteswap evaluators for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 297d346)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified fvtest/compilertriltest/LogicalTest.cpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
Commit e537f3bf8e2491d14b9316202041b0add897c14f by Daryl Maier
Rename x86 CodeGenerator 'initialize' function to 'initializeX86'

Clearing the way for a more generic, cross-CodeGenerator function.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e537f3b)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
Commit 4f52ab9605b000c84f290e32674fc8c75ed5ff91 by Daryl Maier
Remove unused helpers from Helpers.inc

```
TR_X86updateInterpreterDispatchGlueSite
TR_X86PatchSingleComparePIC_mov
TR_X86PatchSingleComparePIC_je
TR_X86PatchMultipleComparePIC_mov
TR_X86PatchMultipleComparePIC_je
TR_outlinedPrologue_0preserved
TR_outlinedPrologue_1preserved
TR_outlinedPrologue_2preserved
TR_outlinedPrologue_3preserved
TR_outlinedPrologue_4preserved
TR_outlinedPrologue_5preserved
TR_outlinedPrologue_6preserved
TR_outlinedPrologue_7preserved
TR_outlinedPrologue_8preserved
```

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4f52ab9)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit 4e028e2a43b1b28042e6049da83d8630fc1ed888 by Daryl Maier
Introduce CodeGenerator constructors and initialize functions

* Create a new CodeGenerator constructor that takes a TR::Compilation parameter.
  The constructor hierarchy only contains member initialization lists.

  A mirrored hierarchy was created to permit downstream projets to adapt
  to the hierarchy changes.  The default constructors will eventually be
  deleted and replaced with private empty stubs.

  This constructor will eventually be invoked via a static factory function.

* Create a CodeGenerator::initialize() method to be called after object
  construction to initialize the CodeGenerator object.  The initialize()
  functions take the place of the original constructor bodies and must be
  invoked in the same order.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4e028e2)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit ef7b263cd266aac8c11c5875c3ed68c4dcdeab2b by Daryl Maier
Add default TR::CodeGenerator constructor

This is needed to prepare for the JitBuilder and TestCompiler CodeGenerators
being removed.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ef7b263)
The file was modified compiler/codegen/CodeGenerator.hpp (diff)
Commit ea176557d51ed8247b46c15356d608ee8c122b4e by Daryl Maier
Remove JitBuilder CodeGenerator implementation

The implementation was empty and provided no value over the default
OMR CodeGenerator.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ea17655)
The file was modified jitbuilder/build/files/target/z.mk (diff)
The file was removedjitbuilder/codegen/CodeGenerator.hpp
The file was removedjitbuilder/z/codegen/JBCodeGenerator.cpp
The file was removedjitbuilder/codegen/JBCodeGenerator.hpp
The file was removedjitbuilder/z/codegen/JBCodeGenerator.hpp
The file was modified jitbuilder/CMakeLists.txt (diff)
Commit db42a8720dd48bd7d8d099a2e3dce01461e854ea by Daryl Maier
Remove TestCompiler CodeGenerator implementation

The implementation was empty and provided no value over the default
OMR CodeGenerator.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: db42a87)
The file was modified fvtest/compilertest/build/files/target/z.mk (diff)
The file was removedfvtest/compilertest/codegen/CodeGenerator.hpp
The file was removedfvtest/compilertest/z/codegen/TestCodeGenerator.cpp
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was removedfvtest/compilertest/codegen/TestCodeGenerator.hpp
The file was removedfvtest/compilertest/z/codegen/TestCodeGenerator.hpp
Commit 7aacdcb754ef47a483f4c60f36a23aa723ac3767 by Rahil Shah
 Fix the ASSERT in RegDepCopyRemoval

Fix the assert added in RegDepCopyRemoval to consider missing case
where child of GlRegDeps is PassThrough with the regLoad child and
both uses same register.

Fixes: eclipse/openj9#10630

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 7aacdcb)
The file was modified compiler/optimizer/RegDepCopyRemoval.cpp (diff)
Commit 56a6005d70d527cadf826107655aa6e962a65980 by Harry Yu
Print s390 processor feature name

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: 56a6005)
The file was modified port/unix/omrsysinfo.c (diff)
Commit 4d6adde69a72a4705fbe247cc8abbe76c2ea0f10 by Irwin D'Souza
Unify LinkageInfo word initialization

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 4d6adde)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit 82578df4f82ae47099df23ea3564a2324f1ccfb5 by Daryl Maier
Add and use CodeGenerator factory function

* Add factory create() function to CodeGenerator class

* Call factory create() function to instantiate a CodeGenerator

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 82578df)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
Commit 8e70a97dd4ae61575bfeeee932b17a61ce626fa9 by Devin Nakamura
CMake: call $(MAKE) for ddr on makefile generators

When we are using a makefile generator, build ddrsets using $(MAKE)
to ensure we get proper parallelism.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 8e70a97)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
Commit 700b324b45ee75aff13b738221e68c1ef537e2fb by Enson Guo
Adding `stalltimems` in `gc-end` stanza

- Attribute `stalltimems` is added to `gc-end` to report time spent in stalling (in ms).
- New API `getStallTime()` introduced for `MM_GlobalGCStats`
- Expanded `MM_CollectionStatistics` to `_stallTime`
- New attribute is added in `gc-end` in schema.
- Update `MM_VerboseHandlerOutput::getTagTemplateWithDuration()` to reflect the addition of `stalltimems`

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 700b324)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.cpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.cpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
The file was modified gc/stats/GlobalGCStats.hpp (diff)
The file was modified gc/stats/CollectionStatistics.hpp (diff)
The file was modified gc/verbose/schema.xsd (diff)
Commit 791eac853c546c90bdb4d3f99653d5f503f7936e by Alen Badel
Support Int64 Length Node within setmemoryEvaluator

setMemoryEvaluator generates a sequence of instructions that initializes
a segment of memory of a specified length with a specified value. This
commit enables Int64 Length Node support, while maintaining support for
Int32.

Signed-off-by: AlenBadel <Alen.Badel@ibm.com>
(commit: 791eac8)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 716129e1a9e1b2a8d96cc1631d8a65646ba0cfcf by Daryl Maier
Flip default setting of isExternalRelocation

It seems silly that by default all Relocations are considered External relocations
when only those that are in the `ExternalRelocation` hierarchy should be
considered as such.

Flip the default answer returned from `isExternalRelocation()` to be false, and have
only the relocations in the `ExternalRelocation` hierarchy return true.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 716129e)
The file was modified compiler/codegen/Relocation.hpp (diff)
Commit 14deb9fe8986417ad86bfe801552e645ac6c493c by Harry Yu
Print ppc processor feature name

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: 14deb9f)
The file was modified port/unix/omrsysinfo.c (diff)
Commit 30c13bc07177f8fc014ec25e3123528e158b3320 by Akira Saitoh
AArch64: Add support for tbz/tbnz instructions

Add `TR::ARM64TestBitBranchInstruction` instruction class
to support tbz/tbnz instructions.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 30c13bc)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
Commit 7d72e3f3b2483e407938355999fd17bc25ca575f by Nazim Bhuiyan
Add j9VMThreadTempSlotField symbol in Symbol Reference Table

j9VMThreadTempSlotFieldSymbol is a non-helper symbol that will
provide a mechanism for the compiler to insert temporary information
that the VM can use - such as the number of args when calling
signature-polymorphic methods that are implemented in the VM as
internal natives. The VM can use that information to locate
items on the stack.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 7d72e3f)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
Commit 9452f8ebbc9a8a0690e31931e5307023827adcac by Akira Saitoh
AArch64: Add another method to kill temporary registers added to register dependency

Add variant of `stopUsingDepRegs` method to the register dependency class.
The method takes iterators to the list of registers as arguments.
The list contains registers we do not want to kill.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 9452f8e)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
Commit f9a71c70def9f29021032a28d285fad0608ac522 by Daryl Maier
Fix compile error in RISC-V OMRCodeGenerator.hpp

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: f9a71c7)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
Commit 4535ff35a386bb4867d21114513b3d87f083b17c by Daryl Maier
Use Compilation API for asking if recursive method target

Replace recursive method checks with `isRecursiveMethodTarget` Compilation query.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4535ff3)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
Commit 1cfbdb8bba47028ad2eb1a5046a452af3e319a37 by Daryl Maier
Provide System linkage implementations of entry point APIs

Implement `entryPointFromCompiledMethod` and `entryPointFromInterpretedMethod`
for System linkage classes on RISC-V.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 1cfbdb8)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.hpp (diff)
Commit 24167be252e55208d170bc697bf69749f12db360 by Daryl Maier
Use entryPointFromCompiledMethod linkage API for RISC-V recursive calls

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 24167be)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
Commit 2754a7cce0b89eb7179f224c692fc65af4287cb9 by Daryl Maier
Remove deprecated codegen Relocations

Not used in OMR nor any downstream project:

* LoadLabelRelative16BitRelocation
* LoadLabelRelative32BitRelocation
* LoadLabelRelative64BitRelocation
* LabelTable32BitRelocation

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2754a7c)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/Relocation.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
Commit 06657b95efc6182edbd470cda57c16f46c08e0e8 by Daryl Maier
Remove deprecated code from Relocation.hpp

* Remove unnecessary typedefs not used in OMR or downstream projects
* Remove obsolete debugging code

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 06657b9)
The file was modified compiler/codegen/Relocation.hpp (diff)
Commit adc8deb3ee8b4d8033cadecfc6b543d16463a21c by Daryl Maier
Make findOrCreateRuntimeHelper boolean parms default to false

The vast majority of uses of this API pass in `false` for all three
boolean parameters.  Make that the default value to improve code
readability.

Issue: #5601

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: adc8deb)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
Commit e5a62de60af49f0d98bf86ba4d2fd94105adb25e by Daryl Maier
Replace references to findOrCreateRuntimeHelper on Power

Use API with default boolean parameters.

Issue: #5601

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e5a62de)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit 2c37bab44e6311f220f159d5452ac4480fb82fb1 by Daryl Maier
Replace references to findOrCreateRuntimeHelper on Z

Use API with default boolean parameters.

Issue: #5601

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2c37bab)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.cpp (diff)
Commit a7d6c1aa630f08e401e91ed539d7915c2458db85 by Daryl Maier
Replace references to findOrCreateRuntimeHelper on X86

Use API with default boolean parameters.

Issue: #5601

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a7d6c1a)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit a64551afc1d64405749c4b290ea854dfa8c58f92 by Daryl Maier
Replace references to findOrCreateRuntimeHelper on ARM

Use API with default boolean parameters.

Issue: #5601

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a64551a)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
Commit 61757b9864923498ee26eabe8d6e72ce3f5b6a3e by Ryan Shukla
Prevent cfg simplification from transforming stores of internal pointers

Transforming stores of internal pointers can cause the gc map to be incorrect.

Signed-off-by: Ryan Shukla <ryans@ibm.com>
(commit: 61757b9)
The file was modified compiler/optimizer/OMRCFGSimplifier.cpp (diff)
Commit 22dafe1272cee127e269bd6886afce19e5aa8a8e by Alexey Anufriev
Remove unused JVMPI options

After the cleanup done in https://github.com/eclipse/openj9/pull/10862
these options can be removed

Signed-off-by: Alexey Anufriev <contact@alexey-anufriev.com>
(commit: 22dafe1)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit 3dbf3859a28a2aa3f748c5b9d944aac74fc8d2de by Akira Saitoh
AArch64: Fix debug print for tst instruction

This commit corrects debug printf format string for `tst` instruction.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 3dbf385)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit 5fa4d6d598a1b469ff94b573e0a80c74733a84f0 by Daryl Maier
Remove unused Machine class functionality

* on X86 and Power: cloneRegisterFile
* on Power: cloneRegisterFileByType

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 5fa4d6d)
The file was modified compiler/x/codegen/OMRMachine.hpp (diff)
The file was modified compiler/p/codegen/OMRMachine.hpp (diff)
The file was modified compiler/p/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
Commit 98f94bdfa57bc7b593b74351be55e2cbebb5d744 by Aleksandar Micic
Clear array split stats

In Scavenger, when we clear stats for each GC cycle, we miss to clear 2
fields relevant for array splitting, causing the stats being cumulative
since the beginning of the run.

Marking array splitting is ok.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: 98f94bd)
The file was modified gc/stats/ScavengerStats.cpp (diff)
Commit 8e4bdfcdc3f7ec2377b279941b649cf11330161f by Allan Manuba
Fix missing verbose log acquire and release

There are locations within OMR compiler which we write to the verbose
log without acquiring the verbose log lock first. This patch addresses
the problem.

Issue: #5154

Signed-off-by: Allan Manuba <manuba@ualberta.ca>
(commit: 8e4bdfc)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/infra/SimpleRegex.cpp (diff)
The file was modified compiler/control/CompileMethod.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
Commit fdded35a3def7b43bd79bce8b1ebc6584894158d by Akira Saitoh
AArch64: Change ConstantDataSnippet to use targetaddress2 for non-aconst node

Change ConstantDataSnippet to use targetaddress2 parameter to
constructors of `TR_ExternalRelocation` class if the node is not `aconst`
because some evaluators in downstream projects would use ConstantDataSnippet for loading
address constant with non-aconst node.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: fdded35)
The file was modified compiler/aarch64/codegen/ConstantDataSnippet.cpp (diff)
Commit cd753abb712fb4c22a89b0d118ee178b72223ea4 by Daryl Maier
Rename CodeGenerator disableFpGRA to disableFloatingPointGRA

Expand to make it more readable.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: cd753ab)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
Commit 89a6afea69656dbcc5b3c0fc79c3c21f39500f59 by Daryl Maier
Disable x87 floating point GRA

* Set the CodeGenerator flag to disable x87 floating point GRA when
SSE2 is not being used for floating point.

* Minor cleanup in RegisterCandidate around the code that uses the
getDisableFloatingPointGRA() query.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 89a6afe)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
Commit 1e2f01ebb602e385523411381213a9e229db674c by Devin Nakamura
CMake: Update langlvl on aix

Lang level set to `extended0x` on c++, c remains on `extended`

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 1e2f01e)
The file was modified cmake/modules/platform/toolcfg/xlc.cmake (diff)
Commit f9df260a2d1c58dff43f0ca0ee36d7ca408998ee by Daryl Maier
Use entryPointFromCompiledMethod linkage API for recursive calls

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: f9df260)
The file was modified compiler/p/codegen/PPCDebug.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/arm/codegen/ARMBinaryEncoding.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
The file was modified compiler/p/codegen/OMRInstruction.cpp (diff)
Commit c2df8484bb3356196f02d17ea5c86685ee95862e by Filip Jeremic
Avoid null dereference in inliner due to BCD

The `_callNode` field in the call site may be `NULL` which was not being
checked in code paths guarded by BCD tracing. There was a bug exposed
due to recent changes to enable BCD tracing when `traceCG` is enabled in
#5165. This change activated the BCD tracing code path which exposed the
`NULL` dereference.

The BCD tracing here is actually not very useful because there are
`heuristicTrace` statements immedaitely above which trace pretty much
the same information. Thus the safest and easiest thing to do is to just
remove these extra BCD traces.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: c2df848)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit ba239bc0fe25c69a37b5865e65968522215daaf8 by Benjamin Thomas
Remove reverse load/store opcodes

Previously, OpenJ9 had a number of opcodes for performing byteswapped
loads and stores implementation details of which have leaked into OMR.
Since OMR now supports byteswap opcodes for all of the types for which
these reverse loads/stores were implemented, these opcodes are being
removed.

Closes: #5149
Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: ba239bc)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/optimizer/OMRLocalCSE.cpp (diff)
The file was modified compiler/il/OMRILProps.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit 35961cb45fed7174409b8523e52333483e0261a5 by Keith W. Campbell
Compile twice for DDR on z/OS so optimization is not hindered

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 35961cb)
The file was modified omrmakefiles/rules.zos.mk (diff)
Commit 7696eee6042771206bef38ef5d499916af569ef6 by Dan Heidinga
Reorder J9MemorySegment constants from low to high value

Change makes it easier to see how the different bits combine
and if there are any free bits.

Existing order is due to the way the code was exported out
of Envy Smalltalk, way, way back in the day.

Signed-off-by: Dan Heidinga <heidinga@redhat.com>
(commit: 7696eee)
The file was modified include_core/j9nongenerated.h (diff)
Commit c05bb39196a31219e09d1375a7594c55f5ae18b7 by Babneet Singh
Remove code related to invokeWithArgumentsHelper

MethodHandle.invokeWithArgumentsHelper was removed in
https://github.com/eclipse/openj9/pull/10859.

This PR removes all dead-code related to invokeWithArgumentsHelper.

Related: https://github.com/eclipse/openj9/pull/7352

Co-authored-by: Jack Lu <Jack.S.Lu@ibm.com>
Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
(commit: c05bb39)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/arm/codegen/OMRLinkage.cpp (diff)
Commit 3af3a379a452d2c377797eeccab38ee83d029825 by Henry Zongaro
Define OpenJ9-specific HandleRecompilationOps optimization

Define the OpenJ9-specific optimization, HandleRecompilationOps, along
with options for tracing its actions and disabling it.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 3af3a37)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
Commit 65844401aa01c7441438cafe8c31ff8f8b224fdf by Devin Nakamura
Windows: Fix copyright strings in shared libraries

OMR_PRODUCT_NAME was not properly substituted due to a typo

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 6584440)
The file was modified configure.ac (diff)
The file was modified configure (diff)
Commit 5b3b915a6e579ad786dc4d9aa9a8d90480d0789d by Igor Braga
Add double map API for OSX

Update double map API to allow to reserve contiguous address
at a FIXED address.

Add release double map region API to free memory associated
to double map accordingly

Include extra test to test new version of double map API.

Refactor double map API to generalize methods and variables names.
Discontiguous arraylets from balanced GC policy is one use case
of double mapping API, but the API can be used for any consumer
that wants to double map multiple regions of memory into a single
contiguous region.

mmap(2) in OSX is limitted where it won't allow a mapping that's
backed by a file (have a file descriptor) and huge pages to
work together. That's because huge pages flag is specified
using the file descriptor field; therefore, we cannot have
double mapping, which requires the heap to be backed by a
file descriptor, and huge pages since both use the same field.
In such scenario, if huge pages is available and double map
is requested, huge pages takes precedence over double mapping.

Signed-off-by: Igor Braga <higorb1@gmail.com>
(commit: 5b3b915)
The file was modified port/omrportpriv.h (diff)
The file was modified port/linux/omrvmem.c (diff)
The file was modified port/common/omrvmem.c (diff)
The file was modified gc/base/HeapVirtualMemory.cpp (diff)
The file was modified port/osx/omrvmem.c (diff)
The file was modified port/win32/omrvmem.c (diff)
The file was modified port/zos390/omrvmem.c (diff)
The file was modified fvtest/porttest/omrvmemTest.cpp (diff)
The file was modified port/ztpf/omrvmem.c (diff)
The file was modified gc/base/HeapSplit.cpp (diff)
The file was modified gc/base/MemoryManager.hpp (diff)
The file was modified gc/base/VirtualMemory.hpp (diff)
The file was modified gc/base/Heap.hpp (diff)
The file was modified port/aix/omrvmem.c (diff)
The file was modified gc/base/VirtualMemory.cpp (diff)
The file was modified port/common/omrport.c (diff)
The file was modified gc/base/HeapVirtualMemory.hpp (diff)
The file was modified include_core/omrporterror.h (diff)
The file was modified port/common/omrport.tdf (diff)
The file was modified gc/base/HeapSplit.hpp (diff)
The file was modified include_core/omrport.h (diff)
The file was modified gc/base/MemoryManager.cpp (diff)
Commit 9fe6b2b403bfd5f123eda0f4134dd1ec6c64aca0 by Younes Manton
Add OMR::align() + unit test

std::align() is not available on some old compilers that
we still need to support. Introduce the equivalent
OMR::align().

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 9fe6b2b)
The file was modified include_core/OMR/Bytes.hpp (diff)
The file was modified fvtest/coretest/TestBytes.cpp (diff)
Commit 392e0d35f36e30908d0630fe364b840142d1f338 by Younes Manton
Add CCData to OMR compiler

CCData is a class that represents a table of data suitable for
implementing GOTs, TOCs, PLTs, and so on.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 392e0d3)
The file was addedcompiler/codegen/CCData.hpp
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified compiler/codegen/CMakeLists.txt (diff)
The file was addedcompiler/codegen/CCData.cpp
The file was addedcompiler/codegen/CCData_inlines.hpp
The file was addedfvtest/compilertest/tests/CCDataTest.hpp
The file was addedfvtest/compilertest/tests/CCDataTest.cpp
Commit 2742fe3069a25aabdc6be12c1a48f1369e0377ba by Daryl Maier
Remove deprecated Power register liveness code

Code became obsolete when instruction scheduler was removed prior to open sourcing.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2742fe3)
The file was modified compiler/p/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
The file was modified compiler/codegen/RegisterPressureSimulatorInner.hpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.hpp (diff)
Commit 50d4fc188cde05601ae5dbbbb2bfb73f62cbeb1d by Eman Elsabban
Replacing isAbstractClass() and isInterfaceClass() with isConcreteClass()

isConcreteClass() checks to see if the class is an interface or Abstract class.This
will reduce overhead resulting from calling two queries.
issue: #11029

Signed-off-by: Eman Elsabban <eman.elsaban1@gmail.com>
(commit: 50d4fc1)
The file was modified compiler/env/OMRClassEnv.hpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
Commit 7640bd83bdfb8d38d0544b95222ce6fb496143a2 by Akira Saitoh
AArch64: Fix TestBitBranch instruction

This commit fixes `TR::ARM64TestBitBranchInstruction`.
- Support branching to OOLCodeSection.
- Use correct relocation class as the destination is encoded in imm14 field.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 7640bd8)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit e93399ac6976d7a705b0fc4d996d9d9bfac1a3db by Benjamin Thomas
Fix byteswapped store optimization on Power

Previously, the Power codegen contained an optimization for performing a
store of a byteswapped value in a single instruction. Unfortunately, the
initial implementation of this optimization did not correctly check that
the byteswap node in question was not commoned, which could result in
erratic behaviour. This has now been corrected.

Issue: #5642
Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: e93399a)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 45abc439a0ccc839aa2c0934583574e0b7ae6814 by Irwin D'Souza
Add API to get the sentinel Runtime Assumpion associated with the current Runtime Assumption

Since the sentinel assumption has a field to point to some metadata
associated with the same body that the list of assumptions is, it would
be useful to have the ability to retrieve the sentinel assumption given
a regular assumption.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 45abc43)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
Commit e6670231a98c94fd0a45900d350cec4c78abe6b1 by Jan Vrany
RISC-V: rename TreeEvaluatorTable.hpp (part 1/2)

Use conventional extensible class naming scheme.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: e667023)
The file was removedcompiler/riscv/codegen/TreeEvaluatorTable.hpp
The file was addedcompiler/riscv/codegen/OMRTreeEvaluatorTable.hpp
Commit d178e163b9627021ab4cfda771bddc02f2aad261 by Jan Vrany
RISC-V: rename TreeEvaluatorTable.hpp (part 2/2)

Use conventional extensible class naming scheme.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: d178e16)
The file was addedcompiler/riscv/codegen/TreeEvaluatorTable.hpp
Commit a19ea6af4c2c23372c8c23f2d83306dea73df073 by Rahil Shah
Fix the badIlOp node generated by RegDepCopyRemoval

For creating a fresh copy for RegDepCopyRemoval optimization, there was
a case when a regLoad is under PassThrough node in which case we would
not have corresponding regStore. To handle this case we were creating a
regStore by getting the type from PassThrough node which would cause
badIlOp. This commit fixes that issue.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: a19ea6a)
The file was modified compiler/optimizer/RegDepCopyRemoval.cpp (diff)
Commit 29ccc321c26b0e67cde7ff75b09127d94e5b312a by Daryl Maier
Remove unneeded content from FrontEnd.hpp

* eliminate unnecessary includes and forward declarations
* fix up other files to accommodate removed includes and declarations

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 29ccc32)
The file was modified compiler/env/CompileTimeProfiler.hpp (diff)
The file was modified compiler/env/TRPersistentMemory.cpp (diff)
The file was modified compiler/env/FEBase.cpp (diff)
The file was modified compiler/control/CompileMethod.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.hpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
The file was modified compiler/env/FrontEnd.hpp (diff)
The file was modified compiler/infra/SimpleRegex.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/runtime/OMRCodeCacheManager.cpp (diff)
The file was modified compiler/runtime/OMRCodeCache.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
Commit 6fddaab805c7579cede0ff14f3d6f07446f5b16a by Filip Jeremic
Fix assert when encoding stdbrx

When encoding the stdbrx instruction we hit the following assert:

```
Instruction 0xffef3295360 [stdbrx] (generated from node 0xffef30913b0 [lstorei]): Format 0 cannot be binary encoded by PPCMemSrc1Instruction

Instruction context:

...
     0xfff6c0b9a98 000000a8 [     0xffef3294e80] 7cc0e808          85 twlle gr0, gr29
     0xfff6c0b9a9c 000000ac [     0xffef3294f90] 387d0007          86 addi gr3, gr29, 7
     0xfff6c0b9aa0 000000b0 [     0xffef3295030] 7cc01808          85 twlle gr0, gr3
     0xfff6c0b9aa4 000000b4 [     0xffef32951b0] 7fa307b4          86 extsw gr3, gr29
     0xfff6c0b9aa8 000000b8 [     0xffef32952c0] 38630008          88 addi gr3, gr3, 8
[     0xffef3295360] 88 stdbrx [gr3, gr27], gr26 # SymRef  <generic int shadow>[#492  Shadow] [flags 0x603 0x0 ]
[     0xffef3295400] 88 fence Relative[ f3050434 ] (BBEnd (block_7))
[     0xffef3295ef0] 88 assocreg
PRE:
POST: [GPR_     0xffef3293780 : gr26] [&GPR_     0xffef32936d0 : gr27] [GPR_     0xffef3293620 : gr28] [GPR_     0xffef3293570 : gr29]
[     0xffef3295fb0] 91 fence Relative[ f3050560 ] (BBStart (block_8))
[     0xffef3296040] 91 Label [     0xffef3293350]:
[     0xffef32960d0] 91 ret
...
(Set env var TR_AssertFullContext for full context)

Node context:

...
n115n     lstorei  <generic int shadow>[#492  Shadow] [flags 0x603 0x0 ] ()                   [     0xffef30913b0] bci=[-1,88,322] rc=0 vc=837 vn=- li=7 udi=- nc=2 flg=0x20
n956n       aladd (X>=0 internalPtr sharedMemory )                                            [     0xffef31e1a90] bci=[-1,85,322] rc=0 vc=837 vn=- li=7 udi=- nc=2 flg=0x8100
n982n         ==>aRegLoad
n955n         lsub (highWordZero X>=0 cannotOverflow )                                        [     0xffef31e1a40] bci=[-1,88,322] rc=0 vc=837 vn=- li=7 udi=- nc=2 flg=0x5100
n954n           i2l (highWordZero X>=0 )                                                      [     0xffef31e19f0] bci=[-1,86,322] rc=0 vc=837 vn=- li=7 udi=- nc=1 flg=0x4100
n980n             ==>iRegLoad
n953n           lconst -8 (X!=0 X<=0 )                                                        [     0xffef31e19a0] bci=[-1,88,322] rc=0 vc=837 vn=- li=7 udi=- nc=0 flg=0x204
n952n       lbyteswap                                                                         [     0xffef31e1950] bci=[-1,84,322] rc=1 vc=837 vn=- li=7 udi=- nc=1
n983n         ==>lRegLoad
...
```

The problem seems to be because the format is not specified for this
instruction.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 6fddaab)
The file was modified fvtest/compilerunittest/p/BinaryEncoder.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
Commit 518e46d2250af855efbef8472b2f276b06dd1f06 by Filip Jeremic
Disable byteswap support on x86 until issues are resolved

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 518e46d)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
Commit 2f398eae15c7527296138a9594a9221c9a58bdeb by Devin Nakamura
Make PortSockTest::poll_functionality_many_sockets more robust

Adjust logic to make less assumptions about socket implementation,
and more tolerant of unexpected conditions.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 2f398ea)
The file was modified fvtest/porttest/omrsockTest.cpp (diff)
Commit e7f47df9024617435b57a86b8c8dfb627111eac3 by Daryl Maier
Remove default CodeGenerator constructor

All object instantiations should now happen via the create() function.
Remove duplicate and obsolete code.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e7f47df)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/CodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
Commit 9b282a1136f078ff0d04b5719948b06137628d48 by Benjamin Thomas
Fix lbyteswap store optimization on ppc32

As it turns out, the previous code for performing a byteswapped store of
a long on ppc32 was broken and would end up creating a memory reference
with both an index register and an offset. This has been corrected.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 9b282a1)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 9132a933b25c7d48f13656fc95d7879c35d524ab by Kazuhiro Konno
Implement omrcpu_flush_icache() for ARM and AArch64

This commit implements omrcpu_flush_icache() for ARM and AArch64,
using GCC built-in funciton.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 9132a93)
The file was modified port/unix/omrcpu.c (diff)
Commit b02257679fabf752c53df0338f72fe632093337f by Benjamin Thomas
Fix invalid use of stdbrx on P6 and before

Previously, the codegen optimization for performing an lbyteswap and an
lstore in one stdbrx instruction was not properly checking that the
stdbrx instruction was actually available on the current processor.
Since this instruction was only added in P7, this could result in P6 and
earlier processors encountering an illegal instruction.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: b022576)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 5e8c9c49144e0dea359e7e19f6b3cae18274c556 by Batyr Nuryyev
Remove opcode entries

Remove opcodes in their existing format so we can substitute them
with macros.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 5e8c9c4)
The file was addedtags.temp
The file was addedtags.lock
Commit 82375682de8f3e1bb7755d529b040c0366a8cebb by Batyr Nuryyev
Expand macros in il/OMRILOpCodeProperties

Add a macro definition for expanding a list of
opcodes (that are in the form of macros).

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 8237568)
The file was removedtags.lock
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
The file was addedcompiler/il/OMROpcodes.hpp
The file was removedtags.temp
Commit d393d2643bb96193cc2032bc288715158b5d43a9 by Batyr Nuryyev
Ignore tags files

Ignore tags files, namely tags.lock and tags.temp

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: d393d26)
The file was modified .gitignore (diff)
Commit d3814701f9c4a7abde3c5ee30963b9ed1c57b56c by Batyr Nuryyev
Update OMROpcodes header file

Update the centralized OMROpcodes file after a bug in
OMRILOpCodeProperties.hpp was fixed (#4952).

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: d381470)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 851cc2a8011128b47f1ef64ed3ca5887fa91ca16 by Batyr Nuryyev
Add values from OMRILOpCodesEnum

Added enum values from OMRILOpCodes Enum

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 851cc2a)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 3ba16ad8c0d5ff29e52c81ec83af941703797930 by Batyr Nuryyev
Adjust OMRILOpCodeProperties macro invocation

After integrating more arguments to macros, we have
to adjust existing invocations with macro args list (three dots)

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 3ba16ad)
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
Commit 2f80287182f49cc3d214bdbaadff8cb9b35e57a0 by Batyr Nuryyev
Add last Prefetch opcode

Scripts that auto-generate this header file had a bug,
which has been fixed. Therefore, had to update OMROpcodes.hpp
in OMR repo.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 2f80287)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit bf70d58614b9fa6cd300a820f5fa642502d522fb by Batyr Nuryyev
Change OMRILOpCodesEnum to use macro invocation

Change OMRILOpCodesEnum to invoke macros defined
in OMROpcodes.hpp

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: bf70d58)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
Commit 8de20bcba1eee6ed6a8402084d7bf1a6e245b578 by Batyr Nuryyev
Update OMROpcodes.hpp

Updated the header file to have a better
organization of opcodes, with comments in front
and values after.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 8de20bc)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 0c9d6c9d789d773efd3c636d52719ab5c9d9605e by Batyr Nuryyev
Refactor OMRSimplifierTableEnum.hpp

Refactored the header file as well as moved
one ifdef into its corresponding function
(so ifdef decides which handler to fire).

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 0c9d6c9)
The file was modified compiler/il/OMROpcodes.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
Commit fdd14b9705276c71f67c55abc273619aa0a79ded by Batyr Nuryyev
Refactor ValuePropagationTable.hpp

Refactored the header file, which now
uses FOR_EACH_OPCODE macro to include
OMR opcodes.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: fdd14b9)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 8411d431aec809f8b7bd3c2c07d81b6be8147f3c by Batyr Nuryyev
Canonicalize opcode simplifier handlers

Create one-to-one mapping between opcodes and their simplifier
handlers.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 8411d43)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
Commit 5fbf6f6813317ac06414e0679e633b64da3257ab by Batyr Nuryyev
Canonicalize opcodes and VP handlers

One-to-one mapping between opcodes and
value propagation handlers.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 5fbf6f6)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit aad62a0448f1e2d8abf33ac1a8e003cdcaa88f12 by Batyr Nuryyev
Remove VP and Simplifier tokens

Remove value propagation and simplifier handlers tokens
to keep optimizer and il decoupled.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: aad62a0)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 54c783e3dd75c9eaa2c108fde8a9f7834463f4b5 by Batyr Nuryyev
Refactor Simplifier and Value Propagation

Add one-to-one mappings between opcodes and
their Simplifier and VP handlers, respectively.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 54c783e)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
The file was modified compiler/il/OMROpcodes.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit dbd2e28a797470999cbe9e167605c1c9b74a692f by Batyr Nuryyev
Add OMROpcodes header in VP

Forgot to add OMROpcodes.hpp in
ValuePropagationTable.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: dbd2e28)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit 335f38187b40722af122537ab460d38ce8e10fd9 by Batyr Nuryyev
Refactor i386 TreeEvaluatorTable

Refactored i386 codegen/TreeEvaluatorTable to use
FOR_EACH_OPCODE macro from il/OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 335f381)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 747867e00c0da0f02e039db6bcb8f08a319490a6 by Batyr Nuryyev
Add X86 suffix for macro names

Add the suffix to distinguish between arch-specific
evaluators (X86Eval, AMD64Eval, and so on).

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 747867e)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 0623360036fc7ac3971f7c7e2263e329b6ac7c95 by Batyr Nuryyev
Refactor amd64 TreeEvaluatorTable

Refactor amd64 TreeEvaluatorTable to use FOR_EACH_OPCODE
macro from OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 0623360)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 0554594ca34f2a23feec801427913df469cc423c by Batyr Nuryyev
Refactor aarch64 TreeEvaluatorTable

Refactored aarch64 (ARM64) TreeEvaluatorTable to
use FOR_EACH_OPCODE macro from OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 0554594)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 4da6b279229cf6290756a5219e0beb124897880f by Batyr Nuryyev
Refactor p TreeEvaluatorTable

Refactored Power's TreeEvaluatorTable to use
FOR_EACH_OPCODE macro from OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 4da6b27)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit b0eaa276a72cd1a72e0d2ca1ac3c5e35611e96fc by Batyr Nuryyev
Refactor z TreeEvaluatorTable

Refactored Z OMRTreeEvaluatorTable.hpp to use the FOR_EACH_OPCODE
macro from OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: b0eaa27)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit bafce7c921aa2ac68c40c6d8589297afb3cfb4e0 by Batyr Nuryyev
Refactor arm TreeEvaluatorTable

Refactored ARM TreeEvaluatorTable to use FOR_EACH_OPCODE
macro from OMROpcodes.hpp.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: bafce7c)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
Commit bd6fed435d89caa01c9bfef8499660bc6c2ed8c7 by Batyr Nuryyev
Adjust aarch64 Tree Evaluator table

Removed incorrectly generated macro definitions.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: bd6fed4)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 0f036dd395a29fdf56f957a1b9b1ba2575b23c55 by Batyr Nuryyev
Adjust ARM architecture TreeEvaluator table

Changed incorrectly generated macro definitions
to the correct ones.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 0f036dd)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit fef86e9b85f69e61622ebdfec9aaa23d7d908874 by Batyr Nuryyev
Resolve merge conflict

This should resolve merge conflict
inside TreeEvaluatorTable.hpp of ARM64 arch.

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: fef86e9)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 08ba8de63cfe36e3c9e38619d204f85e314b841b by Batyr Nuryyev
Remove deprecated unsigned opcodes

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 08ba8de)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 5e61b6c00db0ac24c43e99274aa0581c3f935ec3 by Batyr Nuryyev
Remove deprecated set of opcodes

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 5e61b6c)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 6df8d1d179304a08173d292cf11cc18e3d885cf1 by Batyr Nuryyev
Remove deprecated opcodes TR::iucall / TR::iucalli

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 6df8d1d)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit f6e63fe0beb1d409fc7d8e26dff63ae010c2ddcf by Batyr Nuryyev
Add opcodes sbyteswap and lbyteswap

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: f6e63fe)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit aca3de2a03f97e5afcf62657fe54bb3b3ed720d5 by Batyr Nuryyev
Refactor RISC-V TreeEvaluatorTable

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: aca3de2)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
Commit ab8b8fee8802f544937530443b5c28e19b439788 by Batyr Nuryyev
Fix the BadILOp in some files to prevent errors

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: ab8b8fe)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.hpp (diff)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit d3ac3cbbb4ecb469e022f275b0480b16bc2536e8 by Batyr Nuryyev
Fix the macro mapping for byteswap tree evaluators

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: d3ac3cb)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 2e111f8cc3764f47011c56976c61c9d8fb9c4d53 by Batyr Nuryyev
Remove redundant macro tree eval guards in ARM

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 2e111f8)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
Commit 4aea73cea927858fc968671a6c608473bcb9b8f1 by Batyr Nuryyev
Fix tree evaluator macro mapping in Power

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 4aea73c)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit e51ee6fd015529313bae3b854af7baad35dafc71 by Batyr Nuryyev
Fix the incorrect mapping in Power Tree Evaluator

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: e51ee6f)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 1c29eae0763f88937a5194ae5133da68c98f6d5f by Batyr Nuryyev
Fix fselect and dselect macro mapping in Tree Eval

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 1c29eae)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 9cafff757be0610be4626cc2b24273f7b9000859 by Batyr Nuryyev
Remap dselect to fselect as dselect does not exist

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 9cafff7)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit df72e25f6850c666572f1fc64ec7e32c2df43d03 by Batyr Nuryyev
Remove aarch64 name from macro definition

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: df72e25)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit ccaa9c7ef2602e1f58232b6c43f6ccd5bbed87ea by Batyr Nuryyev
Rename opcode macros to be consistent across archs

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: ccaa9c7)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit bd6b701a01f3771f19dd1cf536c8437821fd24b8 by Batyr Nuryyev
Expand SIGNED and UNSIGN in Z TreeEvaluatorTable

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: bd6b701)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 91d90b2323dd430020557e4df4b59160fa254635 by Batyr Nuryyev
Rename RISC-V TreeEvaluatorTable file

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: 91d90b2)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/TreeEvaluatorTable.hpp (diff)
Commit d470e96329291efab1e898ef5939db417dce7db7 by Batyr Nuryyev
Remove redundant comments from OMROpcodes

Signed-off-by: Batyr Nuryyev <nuryyev@ualberta.ca>
(commit: d470e96)
The file was modified compiler/il/OMROpcodes.hpp (diff)
Commit 841d9b7b780cdfcea9fb289472fe447b3f6f1f79 by Filip Jeremic
Add linter job to Azure Pipeline

Port the linter job from Travis CI into Azure. This is a 1-1 port.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 841d9b7)
The file was modified azure-pipelines.yml (diff)
Commit e5211a37b6636cb2f8c4a70c208b4c809da03bee by Filip Jeremic
Deprecate Travis CI

Travis CI linter was the only job that we ran. Deprecate it in favour of
Azure.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: e5211a3)
The file was removed.travis.yml
The file was modified README.md (diff)
The file was modified .github/labeler.yml (diff)
The file was modified doc/GuideForCommitters.md (diff)
The file was removedscripts/build-on-travis.sh
The file was modified CONTRIBUTING.md (diff)
The file was modified fvtest/tril/README.md (diff)
Commit f9621f4cad6a8e3b0bda5c39aac76a3cc44d240d by Filip Jeremic
Refresh Azure ccache

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: f9621f4)
The file was modified azure-pipelines.cache (diff)
Commit 33bd893a15a0d1f20c2160b0f022a3a73f99b21d by Filip Jeremic
Remove reverse load and store opcodes from ValuePropagationTable.hpp

These were guarded with `J9_PROJECT_SPECIFIC` and were accidentally left
as part of centralizing the opcode enum.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 33bd893)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit de011bc82682bac677cd32ed210a7f80be451957 by Daryl Maier
Fix naming and structure of RegisterDependencyStruct extensible class

Use more consistent naming and use a proper Connector typedef.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: de011bc)
The file was modified compiler/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/codegen/RegisterDependencyStruct.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/riscv/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit ab9c8531350216e129914959a64e0e15e468791d by Daryl Maier
Common RealRegister field in RegisterDependencyStruct

Hoist the TR::RealRegister::RegNum field from each architecture into
the base class so that a single implementation can be shared.  Move the
getter and setter as well.

Delete architecture-specific RegisterDependencyStructs that are left
empty because of this.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ab9c853)
The file was modified compiler/x/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was removedcompiler/aarch64/codegen/OMRRegisterDependencyStruct.hpp
The file was removedcompiler/riscv/codegen/OMRRegisterDependencyStruct.hpp
The file was modified compiler/p/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit 17aad65f08fffaae47e7991991728a1eb938eb4b by Daryl Maier
Introduce common meaningful queries for NoReg and SpilledReg property checks

Provide the queries in the common RegisterDependencyStruct base class shared
by all architectures.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 17aad65)
The file was modified compiler/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit fd4efc66a883e77da74d34ce7fc8363c4057f90f by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on x86

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: fd4efc6)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependencyStruct.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
Commit 55eb634f1f60f2f4f3b066b3017000ef0eb00343 by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on Power

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 55eb634)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
Commit 1e7bc327066f40bfbf305f7e9dfe349e5e2fa04e by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on AArch64

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 1e7bc32)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
Commit b54a622b6cf8237070ec74047d9cf7e286ab2707 by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on RISC-V

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: b54a622)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.cpp (diff)
Commit e866e3c817c7031f118b3af3ea10a35d57d0a2af by Daryl Maier
Replace TR_ARMRegisterDependency with TR::RegisterDependency

Use the same class as the other architectures as they are functionally
equivalent.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e866e3c)
The file was modified compiler/arm/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
Commit 6af1a09e1aabec65343bcda9af9e960472569a03 by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on ARM

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 6af1a09)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.hpp (diff)
Commit 89680ab08ddf4c3f0cbd5fa218211829b63db04f by Daryl Maier
Modify some Z RegisterDependencyConditions APIs to accept a TR::RegisterDependency

In compiler/z/codegen/OMRRegisterDependency.cpp:

* Add alternate APIs for `addPreConditionIfNotAlreadyInserted()` and
  `addPostConditionIfNotAlreadyInserted()` that accept a `TR::RegisterDependency *`
  parameter.

* Modify the APIs for `doesPreConditionExist()`, `doesPostConditionExist()`, and
  `doesConditionExist()` to accept a `TR::RegisterDependency *` parameter.
  Eliminate the unused optional parameter `overwriteAssignAny` from all.

* Add Doxygen comments to all APIs changed.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 89680ab)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.hpp (diff)
Commit 912dca544f1c173d66866288580c47f07774cb20 by Daryl Maier
Replace reg dep RealRegister property checks with meaningful queries on Z

Register dependencies rely on "special" RealRegister values to convey
other properties about the register dependency, such as whether a byte
register must be assigned, or whether any assignable register is
suitable for this dependency.  The long-term goal is to not rely on
such special values in the RealRegister enum to convey these properties.
To get there, this commit replaces direct tests of the real register for
queries on the register dependency itself for the property in question.

This commit also fixes a number of compiler warnings on Z where
`RealRegister::RegNum` and `RealRegister::RegDep` enums were compared
directly to test for these properties.  Use a static_cast instead.

The `MayDefine` pseudo real register is never used.  Remove it.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 912dca5)
The file was modified compiler/z/codegen/PseudoRegisterEnum.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit 696ac448290dc52f51c5e6ac542cd69659f43c02 by Devin Nakamura
CMake: Enable support for ddr on zos

zos doesnt store the dwarf debug info in the target executable, but
creates a .dbg file for every compilation unit. In order to collect
these we glob for .dbg files residing under a directory specified by
the DDR_OBJECT_SEARCH_ROOT property on the ddrset target (which defaults
to the ddr set's binary dir). In addition to this paths to exclude from
the globbing are specified in the DDR_OBJECT_EXCLUDES property

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 696ac44)
The file was modified CMakeLists.txt (diff)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
Commit 4e066a5e040af1cdd42e84871a4cdce586a1a8f8 by Younes Manton
Exclude CCDataTest.cpp on MSVC and XL C/C++

MSVC can't deal with the templates in this file. The templates
are used to test various data types and their alignment
requirements in a maintainable way. Exclude the file for
for the time being.

XL C/C++ has similar issues.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 4e066a5)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
Commit c79817717a691d39fac7e3a1c81cf3a25dc64525 by Younes Manton
Add alignof wrapper for old compilers.

Older versions of MSVC don't support C++11's alignof(), but they do
support __alignof() which functions identically.

Likewise, XL C/C++ versions that predate xlclang/xlclang++ only
support __alignof__() (and optionally __alignof()).

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: c798177)
The file was modified include_core/omrcomp.h (diff)
Commit 9c7a093a5e6e7c72da0fc7d1d6359883e1816f34 by Younes Manton
Remove C++11-isms that old compilers don't support

Older MSVC versions don't support delegating constructors
or alignof(). Use OMR_ALIGNOF() in place of alignof() and
rework the CCData constructors to not require delegation.

Older XL doesn't support std::unique_ptr, manage array
pointers directly.

Also replace nullptr with NULL.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 9c7a093)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
The file was modified fvtest/coretest/TestBytes.cpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
Commit 5b727993b434606b4758eb41c0824756a753702a by Younes Manton
Rename variable that clashes with ZOS stdlib

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 5b72799)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit 9904cd43ee17ee68528e097f39367feafae4e861 by Kazuhiro Konno
AArch64: Enable fsqrt/dsqrt evaluators in OMRTreeEvaluatorTable

This commit enables fsqrt/dsqrt evaluators in OMRTreeEvaluatorTable
back again.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 9904cd4)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit f580a3e165805febba8d9022da68840ce8529047 by Dmitry Ten
Require address load instruction for statics in JITServer

In some cases, e.g. method enter/exit hooks,
JITServer takes the static hook address directly from the client,
but the address load might be encoded using offset relative
to server's RIP, which results in an invalid address.
This commit ensures that static address loads for out-of-process
compilations always get loaded in a register first, preventing
relative access.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: f580a3e)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
Commit 9626e941cb60972cbd28a18445a0876cffcf357c by Keith W. Campbell
Remove unnecessary uses of double-colon rules in makefiles

Double-colon rules have special semantics that allow multiple scripts
to be specified (that are executed in the order they appear in the
makefile). The uses modified by this have no scripts and so don't need
to be written specially.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 9626e94)
The file was modified ddr/tools/Makefile (diff)
The file was modified jitbuilder/linter.mk (diff)
The file was modified fvtest/compilertest/iwyu.mk (diff)
The file was modified fvtest/compilertest/linter.mk (diff)
The file was modified GNUmakefile (diff)
The file was modified ddr/Makefile (diff)
The file was modified ddr/lib/Makefile (diff)
Commit ce53d623cef9c1eeabd59b7961aa10d575a92613 by Shubham Verma
Improve selection criteria for IndVarEliminination

Add post dominance check for primary induction variable(PIV) and derived
induction variable(DIV) to improve selection criteria for
`redundantInductionVarElimination` optimization.

Previously when checking whether or not to replace a DIV with PIV one
of the things we did was count the number of increments. We replaced DIV
with PIV only if both had equal number of increments. However, when
counting the increments we did not check if those increments were in the
same block. Because of this we would sometimes replace a DIV even if it
was in a different block than the PIV it was being replaced with. This
resulted in addition of extra add and load instructions to compensate
for the  different block locations. Addition of those extra add and load
instructions resulted in a performance regression.

To combat this regression, we have added domination relationship check
for PIV and DIV. DIV will be replaced only if every increment of the DIV
being replaced is post dominated by at least one PIV increment. This
helps ensure we don't replace a DIV which needs extra instructions to
load PIV.

This change is not enabled on x platform as the complex addressing modes
mitigate the complexity of the expression used to eliminate the derived
induction variable.

The post dominate check can be disabled by setting
`TR_DisableIVEPostDominatorsCheck` environment variable

Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
(commit: ce53d62)
The file was modified compiler/optimizer/LoopCanonicalizer.cpp (diff)
Commit 8a63dfb33a4dea7c07702cb5a80b132acb8f0129 by Keith W. Campbell
Run select parts of make-based builds sequentially

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 8a63dfb)
The file was modified GNUmakefile (diff)
Commit ed46fae54011ce86c81d651b1086b7510ff25543 by Dan Heidinga
Use a default empty message when NULL passed to set error api

`omrerror_set_last_error_with_message` expects a non-null message
though the API doesn't indicate that in the documentation.

Protect against the inadvertant passing of NULL by defaulting to
an empty string for the message.  This ensures that anyone checking
for a message after this call won't get stale data.

Fixes segfaults when the NLS catalog can't be found as it's a common
pattern to pass the NLS result directly to this call.

Signed-off-by: Dan Heidinga <heidinga@redhat.com>
(commit: ed46fae)
The file was modified port/common/omrerror.c (diff)
Commit 8fa35029e515bb7bd1921ee4222d155af33e3f5a by Liqun Liu
Add NonSpecificConstObject flag

The existing flags are used for a limited types of objects, add a flag
for any types of objects.

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 8fa3502)
The file was modified compiler/il/OMRSymbol.hpp (diff)
The file was modified compiler/il/OMRSymbol_inlines.hpp (diff)
Commit 93bc6ad9140591b0c6a99894b75524e68f867bb1 by Filip Jeremic
Create an extenstible Opcodes.enum

This change looks like it has a lot of modifications but in reality the
following was done:

- Move OMROpcodes.hpp into Opcodes.enum
- Eliminate `FOR_EACH_OPCODE` macro to allow for extensibility
- Whitespace formatting after removal of above
- Rename `MACRO` to `OPCODE_MACRO`
- Eliminate line breaks after each `OPCODE_MACRO`
- Modify all uses of `FOR_EACH_OPCODE` to define `OPCODE_MACRO`, include
  the new Opcodes.enum and undefine `OPCODE_MACRO`

The way extensibility will work is similarly to the other extensible
enums in that downstream projects will create their own Opcodes.enum
file and simply include the OMR one, then add their own `OPCODE_MACRO`
definitions.

OMR files which `#include "il/Opcodes.enum` will then automatically pick
up the extended opcode list and produce the tables in question. There is
some downstream work to be done, particularly in OpenJ9 following this
change to prepare to remove a bunch more `J9_PROJECT_SPECIFIC` code in
OMR since the tables are now properly extensible.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 93bc6ad)
The file was removedcompiler/il/OMROpcodes.hpp
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was addedcompiler/il/Opcodes.enum
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 3cf1194cdca7c2f29b47fa5370b5f3ce8835e39b by Filip Jeremic
Deprecate child types array in Tree.cpp in favor expectedChildType API

We already have an API `expectedChildType` which extracts the expected
child type from the Opcodes.enum metadata array. Rather than using a
manually maintained and error prone table, we simply extract the child
type from one source of truth metadata table.

This eliminates the need to maintain yet another table manually when
dealing with updating/adding/removing opcodes.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 3cf1194)
The file was modified compiler/ras/Tree.cpp (diff)
Commit abc0d12e603866fc5957d4048a890cb2f9684f39 by Shubham Verma
Move postDominators allocation to heap

Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
(commit: abc0d12)
The file was modified compiler/optimizer/LoopCanonicalizer.cpp (diff)
Commit aa1b2b69297d6f139bc34f2b444bed467b8f13ab by Filip Jeremic
Move Opcodes.enum into OMROpcodes.enum to allow for extensibility

Downstream projects will need to include OMROpcodes.enum and extend the
list inside their own Opcodes.enum. This is to ensure projects which do
not add the root directory containing OMR to the IPATH are able to
include OMR's own list of opcodes. Having OMROpcodes.enum in such cases
prevents circular indludes and name clashes when trying to extend the
opcodes list.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: aa1b2b6)
The file was addedcompiler/il/OMROpcodes.enum
The file was modified compiler/il/Opcodes.enum (diff)
Commit 4c7ba6c77be69928d2d3340e16f3859a6ce20967 by Filip Jeremic
Remove enumValue from Opcodes.enum in favor of opcode

The `enumValue` field of this metadata table serves no purpose really
and it is a copy of the `opcode` field, sans the `TR::` suffix. Here we
modify the `opcode` field to remove the `TR::` suffix and instead just
add this suffix in the one location that needs it, i.e. within the
compiler/il/OMRILOpCodesEnum.hpp file.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 4c7ba6c)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/il/OMRILOpCodeProperties.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRILOpCodesEnum.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTableEnum.hpp (diff)
Commit ebc1cc3882e9bb8b43eaab330499220dacf1a62c by Jonathan Oommen
Add Dynamic Breadth First Scan Ordering to Balanced GC

Add a gc scavenger scan ordering feature that enables the
copying of a hot field marked by the JIT immediately after the
object containing the hot field is copied for balanced gc policy.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: ebc1cc3)
The file was modified example/glue/ObjectModelDelegate.hpp (diff)
The file was modified gc/base/EnvironmentBase.cpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit e4e8c95b7cc9456e181bdd1c1bf9321bba495323 by Filip Jeremic
Prepare VP tables for downstream extension

Take advantage of the Opcode.enum macro generator to generate the VP
handlers table. Some parts still need to be guarded by the project
specific ifdef until we make the VP table into a proper extensible enum.
This requires some boilerplate code which will be done after we have
everything working.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: e4e8c95)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit 60cf4354a1702c3faaadf695672b0455688eb57e by Filip Jeremic
Prepare simplifier tables for downstream extension

- Move the handlers into a .enum file
- Generate the handlers using the Opcode.enum opcode macros
- Remove OpenJ9 project specific handlers since they are now
  automatically generated

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 60cf435)
The file was removedcompiler/optimizer/OMRSimplifierTableEnum.hpp
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/optimizer/SimplifierTable.hpp (diff)
The file was addedcompiler/optimizer/OMRSimplifierTable.enum
Commit 7245a70d82654f1413ec99036e637fb486592987 by Dan Heidinga
Correct "Elf Hello World Tutorial" link

Signed-off-by: Dan Heidinga <heidinga@redhat.com>
(commit: 7245a70)
The file was modified doc/compiler/runtime/ELFGenerator.md (diff)
Commit d3a0bb30cae8ca8a584d84189edf996a6d506678 by Keith W. Campbell
Explicitly specify output for resource compiler

Without '/fo', rc writes the *.res file in the same directory as the
*.rc file. Some versions of make form the command as
  rc {options} ./win32/omrsyslogmessages.rc
which yields the *.res file in the win32 directory which then won't
be found at the link step.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: d3a0bb3)
The file was modified omrmakefiles/rules.win.mk (diff)
Commit e93c7de75e463efe2d459810e8e836823c4561ce by Kazuhiro Konno
AArch64: Implement hbit/nolz/notz evaluators

This commit implements the following bit operation evaluators:
- ihbit/lhbit
- inolz/lnolz
- inotz/lnotz

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: e93c7de)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
Commit 5fa0507b5e0c01101242755d564bb4a315761ffc by Keith W. Campbell
Add support for CUDA version 11.1

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 5fa0507)
The file was modified port/common/omrcuda.cpp (diff)
Commit b69fb82cc992602b465aee0459ab69c7fc87db91 by Shubham Verma
NULL ptr field `_postDominators` to avoid scope issues in future

Pointer field `_postDominator` gets initialized to a local variable.
As of right now all access points of the variable are guarded by NULL
checks. Setting it to NULL before we exit the method to avoid bugs which
may arise from accidental use of the variable without a NULL check.

Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
(commit: b69fb82)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 61a4993230911c6cde1b6186644cff0d4aa0a881 by Sharon Wang
Set _compressObjectReferences if mixed build override not defined

`_compressObjectReferences` should only be defined if
`OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES` is not defined.
Otherwise, when mixed mode is enabled and the override is defined,
`_compressObjectReferences` is considered a private field that is
declared, but never used, which the compiler may complain about.

Signed-off-by: Sharon Wang <sharon-wang-cpsc@outlook.com>
(commit: 61a4993)
The file was modified gc/base/MemoryPool.hpp (diff)
The file was modified gc/base/ObjectScanner.hpp (diff)
The file was modified gc/structs/ForwardedHeader.hpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified gc/base/GCExtensionsBase.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/SlotObject.hpp (diff)
Commit d841b76395a865727b0f624d71c2585f92e7d45b by Dan Heidinga
Correct formating to clarify code in for loop

Formating implies that e_ident is set in the loop but
it's only set once, after the loop.

Signed-off-by: Dan Heidinga <heidinga@redhat.com>
(commit: d841b76)
The file was modified compiler/codegen/ELFGenerator.cpp (diff)
Commit 8cbff4b4a66287eb558c55755299ea30208f209b by Sharon Wang
Add support for mixed references mode in CMake builds

In mixed references static mode, split the omr gc library into omrgc
and omrgc_full so that the appropriate library can be used.

Only set OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES in mixed references
static mode.

Signed-off-by: Sharon Wang <sharon-wang-cpsc@outlook.com>
(commit: 8cbff4b)
The file was modified gc/CMakeLists.txt (diff)
The file was modified cmake/config.cmake (diff)
The file was modified gc/api/CMakeLists.txt (diff)
The file was modified include_core/omrcfg.h.in (diff)
The file was modified include_core/omrcfg.cmake.h.in (diff)
Commit 472538fbd62e88caf61dd0f48cfb1809d81e28e3 by Harry Yu
Add print cpu feature info port library API

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: 472538f)
The file was modified port/omrportpriv.h (diff)
The file was modified port/common/omrsysinfo.c (diff)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/win32/omrsysinfo.c (diff)
The file was modified port/common/omrport.c (diff)
The file was modified include_core/omrport.h (diff)
Commit 6d806b9844db4219080d19216f23acf40cfc7012 by Nazim Bhuiyan
Use TR_BitVector instead of CS2::ABitVector in TR_InterferenceGraph

Some of the largest symbols in the compiler obj files originates
from TR_InterferenceGraph resulting from its use of
CS2::ABitVector, while providing no real benefits in terms
of capabilities or performance. Use of CS2::ABitVector has been
replaced with TR_BitVector in TR_InterferenceGraph, which results
in significant reduction in the size of the Compiler component's
obj files, whether it is part of a standalone OMR build or part of
a downstream project.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 6d806b9)
The file was modified compiler/infra/InterferenceGraph.cpp (diff)
The file was modified compiler/infra/InterferenceGraph.hpp (diff)
Commit f8644ed31d92ea44de12a4744c1a32384b376564 by Younes Manton
OMR::CCData -> TR::CCData

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: f8644ed)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit 95abb74f4db42023998066492a8631069abfd89c by Younes Manton
Replace macros with inline methods in CCData impl

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 95abb74)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit 5a25e923af2452107639e9c788a45e66b1cddae7 by Younes Manton
Clean up CCData doxygen docs

Fix typos, remove todos, add details.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 5a25e92)
The file was modified compiler/codegen/CCData.hpp (diff)
Commit a8f59c18432e2c0b9df55dd4e89efe1bed24b357 by Younes Manton
Remove internally managed storage from CCData

Don't bother allocating and managing memory, leave that to the user
of the class.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: a8f59c1)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit ee49651ae517e776b0b8057a9734f3aee0e6e2c4 by Younes Manton
Fix aliasing issues with storage, put/get, keys

Use char* rather than uint8_t*, since they are not the same
with respect to aliasing.

Use void* in signatures to the hide implementation details
like the above.

Assert that keys are a sequence of bytes (char) such that
we can construct them from a byte pointer.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: ee49651)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
Commit 35062c19baa3f6e885d351e0b5ebf427d3f64071 by Younes Manton
Add a reserve() func rather than overloading put()

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 35062c1)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit 6ad799c5427a638da17df701ada9779751d4ff7b by Younes Manton
Prefer gtest's ASSERT to EXPECT

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 6ad799c)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
Commit 741b51de76abd825dbb5bbe84b1f3de1223980fd by Younes Manton
Make CCData tests more granular

Test filling the table separately from other functions.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 741b51d)
The file was modified fvtest/compilertest/tests/CCDataTest.cpp (diff)
Commit ba92393dc45dc88f8518105b6389129f48b74e3a by Younes Manton
Move CCData test to fvtest/compilerunittest

Move CCData test to fvtest/compilerunittest.
Also remove IL verifier test, which doesn't directly test
CCData.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: ba92393)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified fvtest/CMakeLists.txt (diff)
The file was removedfvtest/compilertest/tests/CCDataTest.hpp
The file was addedfvtest/compilerunittest/CCData.cpp
The file was removedfvtest/compilertest/tests/CCDataTest.cpp
The file was modified fvtest/compilerunittest/CMakeLists.txt (diff)
Commit 25d11ddd253cad1c0ca99494572f9ab0c0bdbbd8 by Enson Guo
Print `initialized` stanza to each file

In order to achieve this, following changes have been made:

- Relocate `formatAndOutput(),formatAndOutputV()` to `MM_VerboseBuffer`
  from `MM_VerboseWriterChain`
- In `MM_VerboseHandlerOutput`:
   - Modified `writeVmArgs` to take a `MM_VerboseBuffer`
   - Factored out lines for printing `Initialized` stanza in `handleInitialized`
   - Created `outputInitializedStanza` dedicated to output `Initialized`
     stanza, which also takes a `MM_VerboseBuffer`
   - In `outputInitializedStanza`, replaced `handleInitializedInnerStanzas`
     with `outputInitializedInnerStanza`
- In `VerboseHandlerOutput`:
   - Modified `writeVmArgs` to takes a `MM_VerboseBuffer`
   - Implement virtual method `outputInitializedInnerStanza()`
- Implement `MM_VerboseManager::getVerboseHandlerOutput()`
- In `VerboseWriterChain`:
   - Delete `formatAndOutputV()`
   - Redirect `formatAndOutput()` to `MM_VerboseBuffer`
   - Implement `getBuffer()`
- In `MM_VerboseWriterFileLoggingBuffered` and `VerboseWriterFileLoggingSynchronous`:
   - Print `Initialized` stanza on the second file opens (First file is
     handled by `TRIGGER_J9HOOK_MM_OMR_INITIALIZED`)
- In `MM_VerboseWriterFileLogging::endOfCycle`, opens a file right
  after last file closes to make sure a new `Initialized` stanza is
  printed in `openFile(...)`.
- Changes to generalize handleIniaitzed to work on any provided buffer
  rather than writer chain specific buffer. This is done to bypass the
  writer chain with a new buffer during openFile to print stanza
  specifically for the file being opened.

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 25d11dd)
The file was modified gc/verbose/VerboseWriterFileLogging.cpp (diff)
The file was modified gc/verbose/VerboseWriterFileLoggingSynchronous.hpp (diff)
The file was modified gc/verbose/VerboseBuffer.cpp (diff)
The file was modified gc/verbose/VerboseWriterChain.hpp (diff)
The file was modified gc/verbose/VerboseWriterFileLoggingBuffered.hpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
The file was modified gc/verbose/VerboseWriterChain.cpp (diff)
The file was modified gc/verbose/VerboseBuffer.hpp (diff)
The file was modified gc/verbose/VerboseManager.hpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.cpp (diff)
The file was modified gc/verbose/VerboseWriterFileLogging.hpp (diff)
The file was modified gc/verbose/VerboseWriterFileLoggingSynchronous.cpp (diff)
The file was modified gc/verbose/VerboseWriterFileLoggingBuffered.cpp (diff)
Commit ae03d9c1d5ea13f166a6273e3e5134f3668294d2 by Jan Vrany
RISC-V: fully-qualify evaluators in OMRTreeEvaluatorTable.hpp

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: ae03d9c)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 2565771054cfec262d5795d428a1fbadb7fb7bff by Liqun Liu
Only unset argInfo if value changes

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 2565771)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit 24f32c24e12978351103a06ba927070143f5e4f0 by Benjamin Thomas
Temporarily disable Power reverse load/store optimizations

Previously, stores/loads with byteswaps were generating optimized
sequences in the Power codegen. Unfortunately, in some cases this
support required the use of delayed indexed-form, which has been found
to be broken. In order to temporarily correct issues arising from these
optimizations, they have been disabled until the underlying issue is
corrected.

Issue: #5684
Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 24f32c2)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 80f4034d7b6c203f862fe06aea949e3f5c81e09c by Younes Manton
Add is_trivially_copyable wrapper for GCC<5

GCC <5 advertises C++11 support (i.e. __cplusplus >= 201103L) but
doesn't have std::is_trivially_copyable. It does have an extension
__has_trivial_copy that behaves much the same way.

This patch introduces a macro OMR_IS_TRIVIALLY_COPYABLE that
substitutes the former for the later under GCC <5.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 80f4034)
The file was modified include_core/omrcomp.h (diff)
Commit e5e602b9f052b768d8b49d4ce97bb45b89ad2cc8 by Younes Manton
Simplify type_traits guards

We have to support building in environments that
don't support <type_traits> at all, or only support
some of the features we need. Complicating matters
is the fact that not all features have standard test
macros, nor can we rely on the code being built with
CMake (which would allow us to detect compiler
support for specific features at build-config time).
Instead we'll rely on the __cplusplus macro to detect
C++11 and assume that if the compiler supports C++11
it will have most of the traits we need.

An exception to the above is GCC<5, which claims
C++11 support but doesn't have is_trivially_copyable.
For that case, use the OMR_IS_TRIVIALLY_COPYABLE macro
instead, which falls back to a GCC extension where
necessary.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: e5e602b)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit 652ac2a18be50cbb31c3741763bf171aa23e3958 by Younes Manton
Use larger storage buffers for CCData tests

Depending on the internal unit size and alignment, some storage buffers
may not be large enough to hold any data at all. To avoid this we
shouldn't create really small buffers.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 652ac2a)
The file was modified fvtest/compilerunittest/CCData.cpp (diff)
Commit 0faaaf3e0987953c28bb8011459104f678b62b9c by Younes Manton
Avoid some reinterpret_casts in CCData ops

Casting to/from data_t* (for non-char data_t) simplifies pointer
arithmetic but requires reinterpret_casts and has potential to
violate aliasing rules. This patch replaces such casts with manual
calculations which allows for some reinterpret_casts to be converted
to safer static_casts.

We can also avoid reinterpret_cast when constructing keys because
keys are now guaranteed to be stored as a sequence of bytes.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: 0faaaf3)
The file was modified compiler/codegen/CCData_inlines.hpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit d3a7913a350c352ae51c56bc3f0d3222539d35ac by Younes Manton
Replace std::is_same with OMR::IsSame

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: d3a7913)
The file was modified compiler/codegen/CCData.cpp (diff)
The file was modified compiler/codegen/CCData.hpp (diff)
Commit 64c519b73855bf193c95c9152ea5811f8e41f671 by Rahil Shah
Create jitResolvedFieldIsVolatile helper

This helper will be consumed in the OpenJ9 downstream project.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 64c519b)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit 81f8f755f33dcc148a105df0d000bc49b0898f32 by Rahil Shah
Prevent MVC reduction in astoreEvaluator if symref is unresolved

The `astoreEvaluator`, more precisely the `astoreHelper` has a path in
which it is trying to identify the following tree pattern:

```
astore <x>
  aload <y>
```

and tries to generate an `MVC` instruction to perform the store. The
problem with this is that it seems to generate a memory reference from
the `node` only for the purposes of testing whether it has an index
register (which it by the way cannot know until the memory reference is
used within an instruction). The act of generating a memory reference
is not side-effect free as the symref could have been unresolved and as
such various metadata can be generated.

The `astoreHelper` then goes ahead and creates another memory reference
from the node and uses that for the `MVC` instruction. This means the
metadata for handling unresolved symrefs could have been generated
twice.

Similarly to `directMemoryStoreHelper` we simply prevent this `MVC`
reduction if the symref is unresolved.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 81f8f75)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit e1d80fa83800651939c280ba655be48544b15212 by Jimmy Kwa
Fixed traceMsg in LocalAnticipatability

Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
(commit: e1d80fa)
The file was modified compiler/optimizer/LocalAnticipatability.cpp (diff)
Commit 58f212d79d9048521a6a65accf1cc25802a97601 by Aleksandar Micic
Swap dequeue and decrement in Scavenger scan queue

Currently, we decrement the counter of non-empty sub-queues after we
remove an element from a sub-queue. In a corner case, when this is the
last element of the last non-empty queue, for a moment there will be
effectively no elements in the queue, but the counter will not be zero.
If the GC thread doing dequeue is stalled (by OS due to overloaded CPUs)
at that moment, other worker GC threads may spin in a higher level scan
loop trying to dequeue a (non-existent) element from seemingly non-empty
queue. The spinning takes CPU resources and does not help the stalled
thread resume.

By re-ordering these 2 steps, if a thread stalls between them, the queue
will appear as empty before the dequeue, what will make other GC threads
quickly block (although they may shortly spin on spinlock of the that
non-empty sub-queue). That in turn will release CPU resources and give a
chance to the stalled thread to resume running.

This new order of operation in dequeue will now be a mirrored order of
what occurs in enqueue steps (first add element and then increment),
what indeed makes sense.

The explained problematic scenario is extremely rare, and this change
for the most part is not expected to change Scavenge behavior.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: 58f212d)
The file was modified gc/base/standard/CopyScanCacheList.cpp (diff)
Commit c6b430b08d5b21ef70205fc09427ce1c6b1405d1 by Peter Shipton
Return quickly on OSX when 2M pages cannot be allocated

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: c6b430b)
The file was modified port/osx/omrvmem.c (diff)
Commit 4afc1ea98f26d60977206dc32da29a89e62368a5 by Enson Guo
Fix compile problems in PR #5607

This is a fix for compile error in
PR: https://github.com/eclipse/omr/pull/5607

Previous PR removed handleInitializedRegion() and writeVmArgs() prematurely.
Fixed by adding empty implementation for these two methods.
These empty methods are temporary, which will be removed by time
downstream projects (OpenJ9) starting using new API.

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 4afc1ea)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
Commit fac843188f045914337e642b9125fe5d9de919ed by Jimmy Kwa
Change when SupportsAlignedAccessOnly flag is set

SupportsAlignedAccessOnly flag is no longer set for 64 bit Power 9.
SupportsAlignedAccessOnly flag is no longer set for 64 bit BE Power 8.
SupportsAlignedAccessOnly flag is now set for 32 bit Power 7.

This is done to more accurately represent which cases have performance
issues with unaligned accesses.

Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
(commit: fac8431)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit f0b0e930d544f4fd3eb167e9bd6f7743bbbe1f0a by Jimmy Kwa
Add traceSequentialStoreSimplification option

The traceSequentialStoreSimplification option enables tracing for the
sequentialStoreSimplification opt.

Signed-off-by: jimmyk <jimmyk@ca.ibm.com>
(commit: f0b0e93)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit e9f8cacfed3bbe1da70d9bed00597ca174b83099 by Ashutosh Mehra
Add support for serialization of TR_BitVector

Added methods for (de-)serialization of TR_BitVector.

Signed-off-by: Ashutosh Mehra <asmehra@redhat.com>
(commit: e9f8cac)
The file was modified compiler/infra/BitVector.hpp (diff)
Commit 6435eecdfccd9004c90b3db494f475c1e5653680 by Enson Guo
Add `contextid` in `concurrent-collection-start`

https://github.com/eclipse/openj9/issues/11237

Added attribute `contextid` to `concurrent-collection-start` stanza.
Changed name of `concurrent-collection-start` stanza
to `conurrent-global-final` to show its relation to
`cycle-end` stanza which follows it.
Removed `concurrent-collection-end` to reduce redundancy with
`exclusive` stanza that follows it.
Overloaded `MM_VerboseHandlerOutput::getTagTemplate()` to take `contextid`.

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 6435eec)
The file was modified gc/verbose/VerboseHandlerOutput.cpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.hpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff)
The file was modified gc/verbose/schema.xsd (diff)
The file was modified gc/base/omrmmprivate.hdf (diff)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit f14cd51df40bf73b167f71ef4e5ec4dc0af71931 by Abdulrahman Alattas
Add NoReg dependencies for Power two-reg form fixedSeqMemAccess

This fix ensure no register spills occurring in the middle of
the fixedSeqMemAccess which will break JIT/AOT address patching
code as it assumes specific relative instructions addresses.

Issue: eclipse/openj9#11163

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: f14cd51)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit e6fba6866ee0ab68edd17b5edb74c3954bd82f34 by Ashutosh Mehra
Add struct TR_SerializedBitVector to maintain order of fields

Add struct TR_SerializedBitVector to maintain order of fields when
serializing and deserializing.

Signed-off-by: Ashutosh Mehra <asmehra@redhat.com>
(commit: e6fba68)
The file was modified compiler/infra/BitVector.hpp (diff)
Commit ba50a0ff631a21bd092d18899ab1ededb421d711 by Dhruv Chopra
Initialize immediate fields for RIE instructions

Failing to default initialize these fields to 0 when a new
instruction is generated can result in an ignored byte in
the instruction having a non-zero value. This can cause
bugs in the future when the byte may no longer be ignored.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: ba50a0f)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
Commit 14f84ffceddc4c1d294ae9e7c341c756401b65d0 by Akira Saitoh
AArch64: Unset hasResumableTrapHandler if TR_DisableTrap is set

Change initializer of `OMRCodeGenerator` not to set `hasResumableTrapHandler`
if `TR_DisableTrap` is set.
Set `_numberBytesReadInaccessible` and `_numberBytesWriteInaccessible` to 4096
if `TR_DisableTrap` is not set.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 14f84ff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit d5418eee6cf01f1ffba60433dc335d7a9f4f0c11 by Jan Vrany
RISC-V: refactor instruction encoding macros

This commit replaces `TR_RISCV_?TYPE()` macros with (inline) functions
and provide overloaded versions for easier use. This provides a nicer
instruction encoding interface for encoding snippets.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: d5418ee)
The file was modified compiler/riscv/codegen/RVInstruction.hpp (diff)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
Commit d64765a6b69fdc57c4bf535ecefbe228c2cf927e by Jinghua Feng
Reset on-stack buffer pointer for iconv

This prevents buffer overrun when there is second round iconv() call
within convertWideToPlatform.

Signed-off-by: Jason Feng <fengj@ca.ibm.com>
(commit: d64765a)
The file was modified port/common/omrstr.c (diff)
Commit bb4972729dfa083feb2f07205b2dab0dd9452cff by Liqun Liu
Add preProcess stage to recognized call transformer

Some transformation require additional data or the trees to be
preprocessed, so add a preProcess extension point to be implemented by
downstream projects.

Also dump trees before and after the transformation when trace is on.

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: bb49727)
The file was modified compiler/optimizer/OMRRecognizedCallTransformer.hpp (diff)
The file was modified compiler/optimizer/OMRRecognizedCallTransformer.cpp (diff)
Commit 59d3d44ec48cd8cf7d59584971a675c89b9940dd by Akira Saitoh
AArch64: Print instruction comments for memory reference instructions

This commit adds 'printInstructionComments()` call to debug print functions
of memory reference instructions.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 59d3d44)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit 0df4d51b47a194c167424efed578aa0e9274c179 by Akira Saitoh
AArch64: Add a method for setting up implicit exception point to InstructionDelegate

Add `setupImplicitNullPointerException` method to InstructionDelegate class
and change instruction classes with memory reference to call it from their constructor.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 0df4d51)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstructionDelegate.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
Commit 41135379d544cd8983a774ed2492a73c432fa686 by Harry Yu
Remove newline in omrsysinfo_get_processor_feature_string

Signed-off-by: Harry Yu <harryyu1994@gmail.com>
(commit: 4113537)
The file was modified port/win32/omrsysinfo.c (diff)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/omrportpriv.h (diff)
The file was modified include_core/omrport.h (diff)
The file was modified port/common/omrsysinfo.c (diff)
Commit 0ba496b61730ec218549701cc5bd22ae8f3c143e by Cijie Xia
Upload the documentation for BenefitInliner

This documentation gives a high level structure of the new inliner.

The points of the documentation
- Different components of the new inliner and their responsibilities.
- The relationship between different components of this new inliner .
- Parts need language specific implementations.

Issue #5488

Signed-off-by: cijie xia <cijie@ualberta.ca>
(commit: 0ba496b)
The file was addeddoc/compiler/optimizer/BenefitInliner.md
Commit c97f7ad6ad093dc874e0248e584f5fbb0c457c56 by Cijie Xia
Add the helper classes for abstract interpretation

Including:
- AbsValue.cpp. The abstract representation of a 'value'.
- AbsOpStack.cpp. The abstract representation of an operand stack.
- AbsOpArray.cpp. The abstract representation of an operand array.

Issue: #5488

Signed-off-by: cijie xia <cijie@ualberta.ca>
(commit: c97f7ad)
The file was addedcompiler/optimizer/abstractinterpreter/AbsValue.hpp
The file was addedcompiler/optimizer/abstractinterpreter/AbsValue.cpp
The file was addedcompiler/optimizer/abstractinterpreter/AbsOpArray.cpp
The file was addedcompiler/optimizer/abstractinterpreter/AbsOpStack.hpp
The file was addedcompiler/optimizer/abstractinterpreter/AbsOpArray.hpp
The file was modified compiler/optimizer/CMakeLists.txt (diff)
The file was addedcompiler/optimizer/abstractinterpreter/AbsOpStack.cpp
Commit 9e6a39868d5d34cf101eb4debfe69624d5ace933 by Cijie Xia
Refactor CodeGenTest.hpp

Common parts for testing compiler/optimizers are extracted out.
Those parts are put into a new class called CompilerUnitTest.hpp.
From now on, CompilerUnitTest.hpp can be used as a base class for compiler unit tests.

Signed-off-by: cijie xia <cijie@ualberta.ca>
(commit: 9e6a398)
The file was addedfvtest/compilerunittest/CompilerUnitTest.hpp
The file was modified fvtest/compilerunittest/CodeGenTest.hpp (diff)
Commit 977cc0a3e4a78276d05cf21edc363a8528af6f86 by Cijie Xia
Add unit tests for abstract interpretation

OMR_ARCH_POWER flag is removed from fvtest/CMakeLists.txt.
Since now it contains tests also for non-arch platforms.

Tests including:
- Tests on getters and setters.
- Tests on clone operations.
- Tests on merge operations.
- Tests on push/pop operations of stack.

Issue: #5488

Signed-off-by: cijie xia <cijie@ualberta.ca>
(commit: 977cc0a)
The file was modified fvtest/compilerunittest/CMakeLists.txt (diff)
The file was addedfvtest/compilerunittest/abstractinterpreter/AbsInterpreterTest.cpp
The file was addedfvtest/compilerunittest/abstractinterpreter/AbsInterpreterTest.hpp
Commit b7d016e372c6c0b7b3804dd7387dffed56eca8b7 by Jan Vrany
RISC-V: implement `riscvCodeSync()`

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: b7d016e)
The file was modified compiler/riscv/CMakeLists.txt (diff)
The file was addedcompiler/riscv/runtime/CodeSync.cpp
Commit d144c3e5965b7203a5934c7f5b096757a16c2ecb by Damian Diago Dmonte
Contribution to OMR build system for shared cache configuration

This commit introduces a top-level directory for Shared Cache.
The files mentioned in sharedcache/CMakeLists.txt will be moved in later PR's.
Introduction of OMR_SHARED_CACHE as a top-level directory flag, necessitated
changes to multiple configure/mk/in files.

Also included in this commit are:

*  additions to the CMake build system needed to build the shared cache, and
*  additions to TRMemory.(hpp/cpp) and omrmemcategories.h for shared cache object
   types and memory categories

Issue: #4610

Co-authored-by: Mark Thom <markjordanthom@gmail.com>
Co-authored-by: Damian Diago D'monte <damian.dmonte@unb.ca>

Signed-off-by: Damian Diago D'monte <damian.dmonte@unb.ca>
(commit: d144c3e)
The file was modified omr/startup/omrrasinit.c (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
The file was modified cmake/config.cmake (diff)
The file was modified CMakeLists.txt (diff)
The file was modified include_core/omrmemcategories.h (diff)
The file was modified omrmakefiles/configure.mk.in (diff)
The file was modified include_core/omrcfg.cmake.h.in (diff)
The file was addedsharedcache/CMakeLists.txt
The file was modified compiler/env/TRMemory.cpp (diff)
The file was modified include_core/omrcfg.h.in (diff)
Commit 90b02e825153d91dc509d7c275c146e039a935b5 by Jan Vrany
RISC-V: use forward declarations in OMRLinkage.hpp

Refactor code to use forward declaration in OMRLinkage.hpp rather
than `#include`s to short-circuit dependencies when extending by
OMR consumer.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 90b02e8)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
Commit 948862b78dec9bc0f2271e2e52c29bf252c91ae3 by Jan Vrany
RISC-V: add TR_RVBinaryEncodingData struct

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 948862b)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
Commit 2327ba531cc90621633541a0faed8914517defc5 by Jan Vrany
RISC-V: unify `.spp` file compilation with AArch64

This commit unifies processing of `.spp` files (C pre-processed
assembly source) for both architectures.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 2327ba5)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
Commit a24d33e7acf00b94c634ec33fef474d1ca340e68 by Jan Vrany
RISC-V: add processor enum values

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: a24d33e)
The file was modified compiler/env/Processors.hpp (diff)
The file was addedcompiler/riscv/env/RVProcessorEnum.hpp
Commit 8430318a9cad595c002efd0d3543ae126e23d898 by Keith W. Campbell
Use portable formats from omrformatconsts.h

* eliminates numerous '-Wformat' warnings

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 8430318)
The file was modified compiler/env/OMRIO.hpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/ras/CallStack.cpp (diff)
Commit 2ebbeb347c48dcf2a51555e420abcbe37151a1f1 by Rahil Shah
Add TR::MemoryReference::create API with trivial implementation

This API is meant to be overridden in downstream projects who wish to
have custom logic for generating memory references. Typical examples of
this is for handling unresolved memory references.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 2ebbeb3)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.hpp (diff)
Commit 8793338934b3e6418754b138a2196864777af683 by Rahil Shah
Use TR::MemoryReference::create API

Use the new `TR::MemoryReference::create` to generate memory references
from nodes. This API can be overridden by downstream projects for
custom logic.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 8793338)
The file was modified compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/z/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/z/codegen/BinaryAnalyser.cpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
Commit df3b63f481722f101c3a280f8e51e48869ceff5b by Daryl Maier
Fix invalid OMR format specifier on Win32

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: df3b63f)
The file was modified compiler/ras/CallStack.cpp (diff)
Commit 456aa0933e58c3f50da0e2b9e8af22a19e54f490 by Rahil Shah
Fix trees around split point in PostGRA block splitter

Before uncommoning the nodes between split points, make sure the
uncommoning won't won't orphan any commoned out compressedrefs anchor
node.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 456aa09)
The file was modified compiler/il/OMRBlock.cpp (diff)
Commit cd1f7f8ef7c3bf8f52daa4a1d34d4d819347564c by Jan Vrany
Common TR:addDependency()

This commit consolidates copies of `TR::addDependency()` used by
aarch64, arm and p and moves it to the common code.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: cd1f7f8)
The file was modified compiler/codegen/OMRCodeGeneratorUtils.hpp (diff)
The file was removedcompiler/arm/codegen/OMRCodeGeneratorUtils.hpp
The file was removedcompiler/p/codegen/OMRCodeGeneratorUtils.hpp
The file was removedcompiler/aarch64/codegen/OMRCodeGeneratorUtils.hpp
Commit d1639faaa648bae0b88aa6209204a5a2b3bd6148 by Jan Vrany
RISC-V: use TR::addDependency() from code generator utils

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: d1639fa)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 317fde3e063e4eadd05e89a71a5324e1ce592ce4 by Rahil Shah
OMR changes to move J9 specific Call Snippet part

This commit cleans up the J9 specific part from the S390CallSnippet
class.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 317fde3)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/z/codegen/OMRSnippet.hpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/z/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/z/codegen/CallSnippet.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/z/codegen/CallSnippet.hpp (diff)
Commit 12588f60c5e7096139334f5da71fd24e5c4ec848 by Jan Vrany
RISC-V: implement "data" instruction

This commit implements a new pseudo-instruction - DataInstruction -
to embed arbitrary value into instruction sequence.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 12588f6)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/riscv/codegen/OMRInstructionKindEnum.hpp (diff)
The file was modified compiler/riscv/codegen/RVInstruction.hpp (diff)
Commit 0f81a4f102f17c456770dc12944e266c08907961 by Jan Vrany
RISC-V: Add getReturnTypeInfoInstruction() / getReturnTypeInfoInstruction()

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 0f81a4f)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
Commit 37c52106bdadf6425a58417239e85ff779a7ec9a by Akira Saitoh
AArch64: Add a variant of helper method for creating constant data snippet

This commit adds `findOrCreate4ByteConstant()` helper method
which finds or creates ConstantDataSnippet with 4byte data.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 37c5210)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit f99bca84b1ad4e37536d04ce61ca90a5a4f5cc1c by Theresa Mammarella
Threading API additions for acquired monitors

API additions expose details about acquired monitors such as owner, number of times acquired, and information about waiting threads. May be useful for runtimes that require specific information about the state of acquired monitors such in Eclipse OpenJ9 snapshot+restore.

Signed-off-by: Theresa Mammarella <tmammare@redhat.com>
(commit: f99bca8)
The file was modified thread/exports.cmake (diff)
The file was modified thread/thread_include.mk (diff)
The file was modified include_core/thread_api.h (diff)
The file was modified thread/common/omrthread.c (diff)
Commit c53240e09e150abbd8bb5a04205b92d94d988176 by Jan Vrany
RISC-V: improve CMake toolchain file

This commit improves CMake toolchain file to work with both,
the "official" RISC-V GNU Compiler Toolchain and Debian (Ubuntu)
provided RISC-V toolchains.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: c53240e)
The file was modified cmake/toolchains/riscv64-linux-cross.cmake (diff)
Commit f186f7f2324bb62a717d3fefaefd33354b611de5 by Akira Saitoh
AArch64: Add debug print of register dependencies to branch instructions

This commit changes the debug print function for `compare and branch` and
`test bit and branch` instructions to print out register dependencies.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: f186f7f)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit 1a7415d4bb5caf42f19f23a10a03d93dd5d5076f by Dhruv Chopra
Deprecate use of *accessStaticIndirectly API in P and X

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 1a7415d)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
Commit 481e344a4193cd84f3ff6e1d7125bb1c751461f1 by Dhruv Chopra
Remove TR_LinkageConventions field in Z linkages

This field is unused and so is removed to avoid
dead code.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 481e344)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.hpp (diff)
The file was modified compiler/z/codegen/Linkage.hpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.cpp (diff)
Commit ce0f8b1f7dcd36e10b655b16791a45c9baaf8512 by Dhruv Chopra
Delete TR_S390LinkageConventions enum

This enum is redundant with the more general
TR_LinkageConventions. This commit combines the two.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: ce0f8b1)
The file was modified compiler/z/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.cpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.hpp (diff)
The file was modified compiler/z/codegen/Linkage.hpp (diff)
Commit d876abdd5fd106eb9ac0226f4ef76f3c1f10dc72 by Dhruv Chopra
Remove redundant entries from TR_S390LinkageConventions

Now that this enum is removed, the redundant entries
introduced by this enum can be removed. This includes
TR_JavaHelper and TR_JavaPrivate which can be collapsed
into TR_Helper and TR_Private.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: d876abd)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.cpp (diff)
The file was modified compiler/z/codegen/Linkage.hpp (diff)
Commit c094f5f11a57407d2bef64407b52161ad19dd2db by Keith W. Campbell
Add missing return statement

Also:
* clear output buffer as documented
* minor formatting fixes
* no need to multiply by sizeof(char)

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: c094f5f)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/common/omrsysinfo.c (diff)
The file was modified port/win32/omrsysinfo.c (diff)
Commit 0729daed8d45d7a6c8e80b8ea467344f05525b1f by Ashutosh Mehra
Add support for relo records for block freqeuncy and recomp queued flag

In OpenJ9 the JProfiling framework is used to create profiled code
which contains references to internal data structures like block
frequencies stored in `TR_BlockFrequencInfo` class, or the flag for
checking if the method is already in recompilation queue.
To support AOT compilation for such code, we need to generate relocation
records for such data structures referenced by the compiled code.
OpenJ9 PR https://github.com/eclipse/openj9/pull/9591 creates the necessary
structures representing the relocation record for this data.
This commit adds the changes required by the OpenJ9 PR by adding
required enum for new relocation records and providing API for tagging
the symbols appropriately.

Signed-off-by: Ashutosh Mehra <asmehra@redhat.com>
(commit: 0729dae)
The file was modified compiler/runtime/Runtime.hpp (diff)
The file was modified compiler/il/OMRSymbol.hpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
Commit eaf836f4fd8b59db92a8e77297ed22cb69e9f639 by Dhruv Chopra
Add recompCounter relocation in generateLoad32BitConstant

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: eaf836f)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 1eb757ed0b21478eb83cba235b60d4dcdca9fde1 by Irwin D'Souza
Add new relo types

Add new relo types that are needed in Eclipse OpenJ9.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 1eb757e)
The file was modified compiler/runtime/Runtime.hpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
Commit 92a77d56e77894680f3e47ec62704efacbb55c4a by Irwin D'Souza
Add new fields to TR_AOTMethodInfo

These fields contain the information that is needed to generate
relocation records for inlined methods; this is necessary in the
scenario where not every inlined method will have a unique guard.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 92a77d5)
The file was modified compiler/compile/OMRMethod.hpp (diff)
Commit 97849068746fafe234c9a2b6c45482faaf4d62a7 by Irwin D'Souza
Add new API to inc inline depth

The existing incInlineDepth API does not contain the right paramters
that are needed to store information that will be used to generate
relocation records for the inlined call.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 9784906)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/compile/OMRMethod.hpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
Commit 56148c76d808bcac01297f882738872c94c86915 by Irwin D'Souza
Add API to determine relo type for method to be inlined

The default in OMR is TR_NoRelocation as AOT is not yet suppoted.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 56148c7)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 867fed7521e5e35c3bfef0e4869d032c714c1525 by Irwin D'Souza
Add Breakpoint Guard to list of known types for AOT

Breakpoint Guards are used to ensure that if a breakpoint is set on an
inlined method, it is reported to the runtime if the method is executed.
In order to facilate enabling this support for relocatable compilation
(currently only in Eclipse OpenJ9), add TR_BreakPointGuard to the list
of AOT Guard Sites.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 867fed7)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
Commit 894baef67d0b5390c1173306067085676be0b039 by Dhruv Chopra
Remove get and setAccessStaticsIndirectly from Z

This query is no longer needed and so it is removed
by this commit. Also delete an unused routine while
in the area.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 894baef)
The file was modified compiler/il/OMRTreeTop.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/LoadExtensions.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
Commit eb756f96e4a98788f1791279bb68124493d5fcbf by Abdulrahman Alattas
Add more performant in-reg byte-reverse series of instr for P8 & P9

As rlwimi became cheaper in P8 & P9, using it for in-register
byte-reverse instruction sequence results in less total instructions
and better performance

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: eb756f9)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 0edd401122040a46247e58f8c7bd6f04e6d1b2cf by Abdulrahman Alattas
Wrap instr mask constant into CONSTANT64() in Power byteSwap

This to ensure same constant and argument type-length
in 64- and 32-bit run modes.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 0edd401)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 833b00a0e533b923084341bbc0b1989de4f50384 by Akira Saitoh
AArch64: Use b.cond instead of cbz/cbnz when all register are used up

`ificmpeq` and its variant nodes have 3 children and the third child is
`GlRegDeps` whose children are `aRegLoad`/`iRegLoad`/`PassThrough` of global registers.
In some cases, `GlRegDeps` node uses all the allocatable integer registers.
If this happens, we cannot use `cbz`/`cbnz` instruction for branch
because `cbz`/`cbnz` requires a register in addition to those global registers.
This commit changes `ificmpHelper` to use `b.cond` instruction for that case.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 833b00a)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
Commit c2890b0160ddc46c8bfbe9212b9018e5be4a6fcf by Enson Guo
Delete obsolete APIs in `MM_VerboseHandlerOutput`

New APIs were introduced in #5607 and made
follwoing APIs obsolete:
`MM_VerboseHandlerOutput::writeVmArgs`
`MM_VerboseHandlerOutput::handleInitializedRegion`

Issue: https://github.com/eclipse/omr/pull/5607
Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: c2890b0)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
Commit f7f354f822669584e1c836e3484655129e117b64 by Jason Hall
Add field to adjust compact to contract minimum contraction ratio

This is intended to allow a new command-line option to adjust the
ratio of high address free tenure space to requested contraction size
which causes an extra compaction. A higher ratio results in more
performance-heavy compactions and allows tenure to contract more.

Signed-off-by: Jason Hall <jasonhal@ca.ibm.com>
(commit: f7f354f)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.cpp (diff)
The file was modified include_core/omrgcconsts.h (diff)
Commit c6f0224d3b2715741d760d6d6fa20d85b6d1e33f by Jason Hall
Fix 0 getContractionSize() in MemorySubSpaceGenerational

Fixes a bug in Gencon where an incorrectly returned 0 contraction size
prevents additional compaction to aid contraction from occuring. The
generational memory subspace was returining its own unused field rather
than the correct contraction size of the actual sub space.

Signed-off-by: Jason Hall <jasonhal@ca.ibm.com>
(commit: c6f0224)
The file was modified gc/base/MemorySubSpace.hpp (diff)
The file was modified gc/base/MemorySubSpaceGenerational.hpp (diff)
Commit 55c525e42212523a0e9ef3b88e39e65e4c81278e by Jason Hall
Allow tenure to contract beyond LOA size when LOA is empty

With an LOA, tenure contraction was previously limited to only
contracting within the LOA. This allows tenure to contract further
when the LOA is empty. This is accomplished by contracting both
the LOA and SOA simultaneously, then rebalancing the LOA size.

Signed-off-by: Jason Hall <jasonhal@ca.ibm.com>
(commit: 55c525e)
The file was modified gc/base/MemorySubSpace.cpp (diff)
The file was modified gc/base/MemoryPoolLargeObjects.cpp (diff)
Commit bec5df011c026b3a3fa108630852f67e071df073 by Jan Vrany
RISC-V: implement `_patchVirtualGuard()`

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: bec5df0)
The file was addedcompiler/riscv/runtime/VirtualGuardRuntime.cpp
Commit 217933c4f334e0fc04ec00801c737cab80cbe796 by Abdulrahman Alattas
Unblock synchronous signal if it is used

Allow synchronous signals to get unblocked when
a signal handler is set for them.

Issue: eclipse/openj9#10744

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 217933c)
The file was modified port/unix/omrsignal.c (diff)
Commit 96937d195cd8e6f70c190f3b1b2df3ed10d55a8a by Abdulrahman Alattas
Unblock signals after setting the handler

For safer execution, unblocking the signal after
setting the handler instead of before ensures all
signals get received by the correct handler.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 96937d1)
The file was modified port/unix/omrsignal.c (diff)
Commit abdde9ea96898983b8876da86dc94e1178503a1b by Daryl Maier
Initial ObjectFormat and FunctionCallData definitions

Provide abstract APIs and base structures

Issue: #5569

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: abdde9e)
The file was modified compiler/env/TRMemory.cpp (diff)
The file was addedcompiler/objectfmt/FunctionCallData.hpp
The file was addedcompiler/objectfmt/ObjectFormat.hpp
The file was addedcompiler/objectfmt/OMRFunctionCallData.hpp
The file was modified compiler/env/TRMemory.hpp (diff)
The file was addedcompiler/objectfmt/OMRObjectFormat.hpp
Commit 19410b49b87cf9f3934c8e3e7883fe2447e3bd36 by Daryl Maier
Create X86 specialization of FunctionCallData

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 19410b4)
The file was addedcompiler/x/objectfmt/FunctionCallData.hpp
The file was addedcompiler/x/objectfmt/OMRFunctionCallData.hpp
Commit bf613e26ed5ed58381a5eacc54a1d3561e1970cd by Daryl Maier
Initial AMD64 implementation of JitCodeRWXObjectFormat

Issue: #5569

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: bf613e2)
The file was addedcompiler/objectfmt/OMRJitCodeRWXObjectFormat.hpp
The file was addedcompiler/x/amd64/objectfmt/OMRJitCodeRWXObjectFormat.cpp
The file was addedcompiler/x/amd64/objectfmt/OMRJitCodeRWXObjectFormat.hpp
The file was addedcompiler/x/objectfmt/OMRJitCodeRWXObjectFormat.hpp
The file was modified compiler/x/CMakeLists.txt (diff)
The file was modified jitbuilder/build/files/target/amd64.mk (diff)
The file was addedcompiler/objectfmt/JitCodeRWXObjectFormat.hpp
The file was modified fvtest/compilertest/build/files/target/amd64.mk (diff)
Commit b4aa3f0efbc8ac2041c3940e3b930858807b7dad by Daryl Maier
Initial AMD64 implementation of JitCodeRXObjectFormat

Such a format is useful in environments that cannot modify the
code cache instructions at runtime.

Issue: #5569

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: b4aa3f0)
The file was addedcompiler/x/objectfmt/OMRJitCodeRXObjectFormat.hpp
The file was modified jitbuilder/build/files/target/amd64.mk (diff)
The file was modified fvtest/compilertest/build/files/target/amd64.mk (diff)
The file was addedcompiler/objectfmt/OMRJitCodeRXObjectFormat.hpp
The file was addedcompiler/objectfmt/JitCodeRXObjectFormat.hpp
The file was addedcompiler/x/amd64/objectfmt/OMRJitCodeRXObjectFormat.cpp
The file was modified compiler/x/CMakeLists.txt (diff)
The file was addedcompiler/x/amd64/objectfmt/OMRJitCodeRXObjectFormat.hpp
Commit 7f8b6c3aaf149a70b8c07d9d609f6b94f88cb9bc by Daryl Maier
Add ObjectFormat getter/setter to CodeGenerator

`getObjectFormat()`/`setObjectFormat()` answers or sets the ObjectFormat installed
for this CodeGenerator.

Issue: #5569

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 7f8b6c3)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
Commit 71d22eb9c20401d9f45c74d4b1c3f75fb48001ad by Liqun Liu
Refactor prex arg info computation and propagation

Part of an effort to refactor prex arg info. This commit contains the
following changes:

- Move two TR_PrexArgInfo functions from OpenJ9 to OMR such that we can
merge prex arg infos in OMR.
- When creating prex arg info for a target, propagate arg info from call
site.
- Add an inliner util to clear arg info for variant argument given a
prex arg info
- `computePrexInfo` will not assume storing the result to `_prexArgInfo`
of a target, instead, the user will take the result and store it to the
place they want.

Part of https://github.com/eclipse/openj9/issues/11584

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 71d22eb)
The file was modified compiler/optimizer/PreExistence.hpp (diff)
The file was modified compiler/optimizer/PreExistence.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/Inliner.hpp (diff)
Commit dc4d2f58773906d0ccd620c09a5416784dbf5299 by Peter Shipton
Filter "C." in the list of locales using language "en"

Locales such as C.UTF-8 must set the language to "en" and not "c.u".

Issue https://github.com/eclipse/openj9/issues/11620

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: dc4d2f5)
The file was modified port/unix/j9nlshelpers.c (diff)
Commit fd64770736548c31cb827592b232af279bc9cb56 by Abdulrahman Alattas
Update signalExtendedTest re synchronous signals unblock with SIGSEGV

Given that synchronous signals gets unblocked when used
the test got updated to ensure signal mask before testing.

Test signal for masked thread pthread_kill test uses SIGSEGV
instead of SIGILL which is used for SIG_MASK inheritance test
and to keep it consistent with the unmasked thread pthread_kill
test.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: fd64770)
The file was modified fvtest/porttest/omrsignalExtendedTest.cpp (diff)
Commit 9a287b78e020e7f30ce04a5f22b7cadc44e942dd by Dhruv Chopra
Simplify field names and remove unnecessary routine

Perform the following cleanup:
- Rename explicitLinkageType to linkageType
- Add enum entries in OMR and remove magic constant
- Remove isOSLinkageType routine

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 9a287b7)
The file was modified compiler/codegen/OMRLinkageConventions.enum (diff)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkage.cpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.hpp (diff)
Commit 18b7e5d9e46844dbecbaba7be400ac69774f4761 by Annabelle Huo
Fix the check on isStoreIndirect in LocalAnalysis

In `hasOldExpressionOnRhs()`, we temporarily change wrtbar to aloadi
for the syntactic comparison in `areSyntacticallyEquivalent()`.
When it’s an indirect store, the number of children of the node is
set to 1, otherwise 0. Because the check on whether not the node
is an indirect store happens after the wrtbar node is recreated as aloadi,
`node->getOpCode().isStoreIndirect()` is false for aloadi, and the
number of children for wrtbar node ends up as 0. It prevents
`areSyntacticallyEquivalent()` from comparing the first child of the two
nodes. It concludes that different expressions as the same.
The fix is to check if it’s an indirect store from the original node.

Fixes eclipse/openj9#11569

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 18b7e5d)
The file was modified compiler/optimizer/LocalAnalysis.cpp (diff)
Commit 5ae1d2b774647c70533d67bcf985c0ce1a78e4a5 by Mohammad Nazmul Alam
Fix b2iEvaluator in power for bRegLoad

The b2iEvaluator currently does not generate sign extension for
bRegLoad. While it will work for sign extended bRegLoad, it may
yield wrong result if the byte was not sign extended. This commit
cover such cases, by making sure bRegLoad is always sign extended.

Fixes: eclipse/openj9#11192
Signed-off-by: Mohammad Nazmul Alam <mohammad.nazmul.alam@ibm.com>
(commit: 5ae1d2b)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit b41ed30f2aaa6fd06fefe205362b597c25bb775c by Keith W. Campbell
Don't compare bool with int

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: b41ed30)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
Commit f4a99dd144182d273f4aa629563c1042d24056ef by Younes Manton
Remove inline from CCData static member funcs

Declaring the functions inlined allows the compiler skip emitting
callable symbols for them in `CCData.o`, but because the functions are
declared in a header that's included in other compilation units the
linker complains that there are no implementations for said functions
available, even though they're declared private and not referenced
outside of `CCData.o`.

Unfortunately said functions need to be declared as class members
because they refer to private typedefs in the CCData class.

Signed-off-by: Younes Manton <ymanton@ca.ibm.com>
(commit: f4a99dd)
The file was modified compiler/codegen/CCData.cpp (diff)
Commit c249f4da3105c5d03d313a0f313b7e9ad0ccf458 by Ashutosh Mehra
Create relo records of type TR_BlockFrequency and TR_RecompQueuedFlag

In OpenJ9 the JProfiling framework is used to create profiled code
which contains references to internal data structures like block
frequencies stored in `TR_BlockFrequencInfo` class, or the flag for
checking if the method is already in recompilation queue.
To support AOT compilation for such code, we need to generate relocation
records for such data structures referenced by the compiled code.
This commit adds the code for generating the relocation records
for block frequency and the recompilation queued flag.
Currently it only handles x and p architectures.

Signed-off-by: Ashutosh Mehra <asmehra@redhat.com>
(commit: c249f4d)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/ConstantDataSnippet.cpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
Commit 2b1809982b2c0da42ac79e5559f4850677e38e47 by Enson Guo
Convert `concurrent-mark-end` to `gc-op` in GMP
https://github.com/eclipse/openj9/issues/11239

- Replace `concurrent-mark-end` in `concurrent-end` with `gc-op`
- moved `terminationReason` as one attribute to `concurrent-end` stanza
for both concurrent marking and concurrent scavenging
- delete warning for reporting termination reason in scavenging (rare case)
- report concurrent marking duration `timems` in gc-op
- Add new API to get termination reason
`MM_VerboseHandlerOutput::getReasonForTermination`
- Consolidate `handleConcurrentGCOpEnd` into `handleConcurrentEndInternal`

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 2b18099)
The file was modified gc/verbose/VerboseHandlerOutput.cpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.hpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff)
Commit 4752253017d2a687be2ce83afdb9661ada3f86d6 by Sharon Wang
Fix DDR field inconsistency in mixed refs builds

Remove !defined(OMR_OVERRIDE_COMPRESS_OBJECT_REFERENCES) from
preprocessor guard of _compressObjectReferences field

Make _compressObjectReferences a protected field

Signed-off-by: Sharon Wang <sharon-wang-cpsc@outlook.com>
(commit: 4752253)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/MemoryPool.hpp (diff)
The file was modified gc/structs/ForwardedHeader.hpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
The file was modified gc/base/ObjectScanner.hpp (diff)
The file was modified gc/base/GCExtensionsBase.cpp (diff)
The file was modified gc/base/SlotObject.hpp (diff)
Commit ab1fd2e6e73cceb0d16d9fc05dfae80962ab1ca8 by Dhruv Chopra
Eliminate vm.heapBaseAddress()

This commit removes OMR::VMEnv::heapBaseAddress() as this
routine always returns 0. It was introduced in the codebase
early on in the codebase and has since been superseded by
a shift-based solution. Hence it no longer needed.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: ab1fd2e)
The file was modified compiler/env/OMRVMEnv.cpp (diff)
The file was modified compiler/optimizer/GlobalRegisterAllocator.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/env/OMRVMEnv.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
Commit 55a1b7d46075d323fc22a2a2db60ca1fc660f72f by Dhruv Chopra
Address PR Comments

- Remove changeHeapBaseConstToLoad routine
- Remove translatedNode search

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 55a1b7d)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/GlobalRegisterAllocator.cpp (diff)
Commit a5a930cf16bcfff5e19ea58fb64fa7a2c22b565c by Leonardo Banderali
Remove @andrewcraik as a code owner

@andrewcraik has retired from his position as a project committer and
has requested to be removed as a code owner. He no longer has a valid
ECA so I am committing the change for him.

Thanks for all your contributions and for serving as a project
committer, Andrew!

Signed-off-by: Leonardo Banderali <leonardo2718@protonmail.com>
(commit: a5a930c)
The file was modified CODEOWNERS (diff)
Commit 87fcaa35a7097e61ab736e80e50088d26d5a3dc1 by Keith W. Campbell
Consolidate tests for whether to compress pointers

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 87fcaa3)
The file was modified gc/base/EnvironmentBase.hpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified gc/base/ObjectScanner.hpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/SlotObject.hpp (diff)
The file was modified gc/structs/ForwardedHeader.hpp (diff)
The file was modified include_core/omr.h (diff)
The file was modified gc/base/MemoryPool.hpp (diff)
Commit 6fef007d220da9e475b10d69e7b66d61f6ee6f61 by Filip Jeremic
Disallow prefetch insertion when read barriers are necessary

Disallow prefetch insertion when read barriers are necessary because
this optimization may insert loads of array elements past the 0th
element for a backwards traversal. That is, if the primary induction
variable is traversing the array backwards, on the last iteration of
the loop we will be prefetching the (i - 1)th element of the array.
Since the prefetch needs to load such an element, we must ensure the
read barrier will not trigger on such a value which may "look like" an
object. For example today, the (i - 1)th element is really the last
word of the array header, which is the `dataAddr` pointer which looks
like an object, but it is not. Thus the read barrier may incorrectly
trigger on such a value.

In theory the same issue can happen on a forward traversal since there
may be padding bytes past the end of an array. For this reason we go
with the safest route and just disable the entire prefetch insertion
optimization if read barriers are necessary.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 6fef007)
The file was modified compiler/optimizer/PrefetchInsertion.cpp (diff)
Commit 48ac4942c80fc85c2c1131c83fc26b2350f1c66b by Akira Saitoh
AArch64: Implement generateDebugCounterBump

This commit implements `generateDebugCounterBump` for aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 48ac494)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit 644fee01b35abd3b1a5266c852435122fa1365f0 by Igor Braga
Introduce OMR_FORWARDED_TAG_MASK flag for forwarded header

Flag is required by DDR support.
Update how OMR_SELF_FORWARDED_TAG is defined, because of
DDR limitation on processing #includes.

Signed-off-by: Igor Braga <higorb1@gmail.com>
(commit: 644fee0)
The file was modified gc/structs/ForwardedHeader.hpp (diff)
Commit 524772c730d84c321b5670acda4941a2089e273c by Jan Vrany
GC: update comment in MarkingDelegate::scanRoots()

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 524772c)
The file was modified example/glue/MarkingDelegate.hpp (diff)
Commit 989379609e2c9e38d3e36a17315c1d99396449c2 by Oussama Saoudi
Fix gencon to work with flattened arrays
Implemented fix to allow gencon to work with flattened arrays.
Currently does not support partitioning for multithreaded scanning

Signed-off-by: Oussama Saoudi <oussama.saoudi@ibm.com>
(commit: 9893796)
The file was modified gc/base/standard/Scavenger.cpp (diff)
Commit 69ef6bfdf46face498aa1713fa313b80416f37d3 by Peter Shipton
Add %sysname dump token on z/OS

Populate the %sysname token using __osname() nodename, which provides
the SYSNAME sysparm.

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: 69ef6bf)
The file was addedport/common/omrgetsysname.c
The file was modified port/common/omrstr.c (diff)
The file was modified port/port_objects.mk (diff)
The file was modified port/common/omrgetasid.c (diff)
The file was modified port/CMakeLists.txt (diff)
The file was addedport/common/omrgetsysname.h
The file was addedport/zos390/omrgetsysname.c
Commit 3dab8a0280f8c29564895ca07f693e0407d9d75d by Jan Vrany
RISC-V: implement helper call snippet

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 3dab8a0)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was addedcompiler/riscv/codegen/RVHelperCallSnippet.cpp
The file was modified compiler/ras/Debug.hpp (diff)
The file was addedcompiler/riscv/codegen/RVHelperCallSnippet.hpp
The file was modified compiler/riscv/CMakeLists.txt (diff)
Commit 097669ba92abb2318a9a70f77e5d1b71368da75b by Daryl Maier
Fix errors in IL documentation

* fix the expression being used in the IL example
* provide a clearer ASCII diagram for IL example
* fix minor typos

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 097669b)
The file was modified doc/compiler/il/IntroToTrees.md (diff)
Commit cadb5ba681deef066cce13a96f4b6e14e453a4ad by Dmitry Ten
Enable jitPersistentAlloc/Free to use non-global persistent memory

Instead of using the global `::trPersistentMemory` object,
`jitPersistentAlloc/Free` now use a new method
`OMR::CompilerEnv::persistentMemory`.
This does not change the behavior for OMR, but upstream
projects can override `persistentMemory` method and return
memory objects that are not the global one.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: cadb5ba)
The file was modified compiler/env/OMRCompilerEnv.hpp (diff)
The file was modified compiler/env/TRPersistentMemory.cpp (diff)
Commit 5a97aeac400915b1496a75e1376e040fc540b55c by Georgiy Krylov
Fix wrong printf code used for JitBuilder ConstInt64 log output

This PR Fixes #5775
Credit for fix of the problem goes to Mark Stoodley.

Signed-off-by: Georgiy Krylov <georgiy.krylov@unb.ca>
(commit: 5a97aea)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
Commit 1a4352e2f5c51ebf3976a1d8b2a13d2872318c44 by Jan Vrany
CMake: use $<TARGET_FILE:target> to specify test executables

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 1a4352e)
The file was modified fvtest/sigtest/CMakeLists.txt (diff)
The file was modified fvtest/utiltest/CMakeLists.txt (diff)
The file was modified example/CMakeLists.txt (diff)
The file was modified fvtest/porttest/CMakeLists.txt (diff)
The file was modified fvtest/gctest/CMakeLists.txt (diff)
The file was modified fvtest/compilertriltest/CMakeLists.txt (diff)
The file was modified fvtest/vmtest/CMakeLists.txt (diff)
The file was modified fvtest/compilerunittest/CMakeLists.txt (diff)
The file was modified fvtest/jitbuildertest/CMakeLists.txt (diff)
The file was modified fvtest/algotest/CMakeLists.txt (diff)
The file was modified fvtest/lljbtest/CMakeLists.txt (diff)
The file was modified fvtest/rastest/CMakeLists.txt (diff)
The file was modified jitbuilder/release/CMakeLists.txt (diff)
The file was modified fvtest/threadextendedtest/CMakeLists.txt (diff)
The file was modified fvtest/threadtest/CMakeLists.txt (diff)
The file was modified fvtest/tril/test/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified fvtest/gc_api_test/CMakeLists.txt (diff)
Commit ae5e0e495ea8a14dceca97c5b5bf31f5f4172aea by Daryl Maier
Remove x87 code from RegisterDependency constructor

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ae5e0e4)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
Commit 6ebbfd4b64e5f544082b50c1eb71a445870c8748 by Jan Vrany
CMake: make sure DDR is disabled when cross-compiling

As of now, DDR is not supported in cross-compilation scenarios.
This commit fails the `cmake` when cross-compiling and DDR is enabled.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 6ebbfd4)
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
Commit 68f20340f634051faab6614ce1ee4f360db0b4d1 by Jan Vrany
CMake: allow tests to be run using simulator

This commit add support for running (cross-compiled) tests on
host using emulator, specified by `OMR_TEST_LAUNCHER` CMake variable.

To make this work, this commit introduces new function - `omr_add_test()`
that behaves just like CMake's `add_test()` but runs the command under
simulator if needed.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 68f2034)
The file was modified fvtest/threadtest/CMakeLists.txt (diff)
The file was modified fvtest/tril/test/CMakeLists.txt (diff)
The file was modified fvtest/porttest/CMakeLists.txt (diff)
The file was modified fvtest/rastest/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified fvtest/lljbtest/CMakeLists.txt (diff)
The file was modified fvtest/utiltest/CMakeLists.txt (diff)
The file was addedcmake/modules/OmrTest.cmake
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
The file was modified example/CMakeLists.txt (diff)
The file was modified fvtest/algotest/CMakeLists.txt (diff)
The file was modified fvtest/coretest/CMakeLists.txt (diff)
The file was modified fvtest/jitbuildertest/CMakeLists.txt (diff)
The file was modified fvtest/CMakeLists.txt (diff)
The file was modified fvtest/gc_api_test/CMakeLists.txt (diff)
The file was modified fvtest/threadextendedtest/CMakeLists.txt (diff)
The file was modified fvtest/vmtest/CMakeLists.txt (diff)
The file was modified fvtest/sigtest/CMakeLists.txt (diff)
The file was modified fvtest/gctest/CMakeLists.txt (diff)
The file was modified jitbuilder/release/CMakeLists.txt (diff)
The file was modified fvtest/compilertriltest/CMakeLists.txt (diff)
The file was modified fvtest/compilerunittest/CMakeLists.txt (diff)
Commit 0d072384206a2ff640c302822287e8f010192098 by Jan Vrany
Disable several Select tests on RISC-V because of missing implementation

Tests fail in the following way:

```
18:26:45  [----------] 450 tests from SelectCompareTest/Int32SelectInt8CompareTest
18:26:45  Assertion failed at /home/jenkins/workspace/Build/compiler/riscv/codegen/OMRTreeEvaluator.cpp:114: false
18:26:45  Opcode bcmpeq is not implemented
18:26:45
18:26:45  compiling file:line:name at level: warm
18:26:45  #0: function TR_LinuxCallStackIterator::printStackBacktrace(TR::Compilation*)+0x2a [0x40017112f4]
18:26:45  #1: function TR_Debug::printStackBacktrace()+0x28 [0x40014f2f42]
18:26:45  #2: ./fvtest/compilertriltest/comptest(+0x133a28e) [0x400133a28e]
18:26:45  #3: ./fvtest/compilertriltest/comptest(+0x133a366) [0x400133a366]
18:26:45  #4: function TR::assertion(char const*, int, char const*, char const*, ...)+0xac [0x400133a416]
18:26:45  #5: function OMR::RV::TreeEvaluator::unImpOpEvaluator(TR::Node*, TR::CodeGenerator*)+0x56 [0x4001523796]
18:26:45  #6: function OMR::CodeGenerator::evaluate(TR::Node*)+0x1a2 [0x4001540254]
18:26:45  #7: function OMR::RV::TreeEvaluator::iselectEvaluator(TR::Node*, TR::CodeGenerator*)+0x6e [0x4001723a96]
18:26:45  #8: function OMR::CodeGenerator::evaluate(TR::Node*)+0x1a2 [0x4001540254]
18:26:45  #9: function genericReturnEvaluator(TR::Node*, OMR::RealRegister::RegNum, TR_RegisterKinds, TR_ReturnInfo, TR::CodeGenerator*)+0x4e [0x4001722790]
18:26:45  #10: function OMR::RV::TreeEvaluator::ireturnEvaluator(TR::Node*, TR::CodeGenerator*)+0x42 [0x40017228c6]
18:26:45  #11: function OMR::CodeGenerator::evaluate(TR::Node*)+0x1a2 [0x4001540254]
```

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 0d07238)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
Commit bd501fbc6ad11f6626d4d0478a45a6a55e08c6dd by Jan Vrany
CMake: disable porttests when running tests under simulator

Since port tests are known to fail (due to limitations of the simulator),
this commit disables port tests in cross-compilation builds.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: bd501fb)
The file was modified fvtest/porttest/CMakeLists.txt (diff)
Commit b3ec72e465474f70cf5fbb9415798c7aa2d575ef by Jan Vrany
CI: enable tests on RISC-V cross compilation pipeline

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: b3ec72e)
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
Commit 318cb74a8b88ebbea92eaaf43c2f1d410043d536 by Alen Badel
Remove unused applyUserOptions

Removing the unused implementation of applyUserOptions.
applyUserOptions was implemented only on Power so that on startup it was possible to disable P10 support when TR_EnableExperimentalPower10Support is not set.
applyUserOptions was ultimately implemented but never used.
Since the method is not implemented on any other platform, it should be removed from the class.

Signed-off-by: AlenBadel <Alen.Badel@ibm.com>
(commit: 318cb74)
The file was modified compiler/p/env/OMRCPU.cpp (diff)
The file was modified compiler/env/OMRCPU.hpp (diff)
The file was modified compiler/p/env/OMRCPU.hpp (diff)
Commit b552e5e6ff0ebeed2d51a9b6c83fcbc0733e6e3e by Babneet Singh
Add missing switch case statements for Eflags

The fix has been applied to win64amd, linuxamd64 and osx.

On osx, rflags is available instead of eflags. Since eflags is analogous
to rflags, OMRPORT_SIG_CONTROL_X86_EFLAGS is used for rflags on osx.

Signed-off-by: Babneet Singh <sbabneet@ca.ibm.com>
(commit: b552e5e)
The file was modified port/linuxamd64/omrsignal_context.c (diff)
The file was modified port/win64amd/omrsignal.c (diff)
The file was modified port/osx/omrsignal_context.c (diff)
Commit 5a20f674eabb1054a0a1c7720dbd0eef28764515 by Filip Jeremic
Raise SIGTRAP in TR::trap() instead of SIGABRT

SIGABRT only has one global signal handler, so we cannot guard
function calls against SIGABRT using the port library APIs. Raising a
SIGTRAP is useful for downstream projects who may want to catch such
signals for  compilation thread crashes and requeue such compilations
(for another attempt, or perhaps to generate additional diagnostic
data).

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 5a20f67)
The file was modified compiler/infra/Assert.cpp (diff)
Commit b89ff51110e71a109b410fdf4fe4003d7fae3477 by Rahil Shah
Object format changes on Z

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: b89ff51)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was addedcompiler/z/objectfmt/OMRJitCodeRXObjectFormat.cpp
The file was addedcompiler/z/objectfmt/OMRJitCodeRXObjectFormat.hpp
The file was addedcompiler/z/objectfmt/FunctionCallData.hpp
The file was addedcompiler/z/objectfmt/OMRFunctionCallData.hpp
The file was addedcompiler/z/objectfmt/OMRJitCodeRWXObjectFormat.hpp
The file was modified compiler/objectfmt/OMRObjectFormat.hpp (diff)
The file was addedcompiler/z/objectfmt/OMRJitCodeRWXObjectFormat.cpp
Commit 31b0ba64d6d12ab20e6729db0a1f9e43df66f0ba by Rahil Shah
Add function to callSnippet API to get the offsetInHalfWods for call

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 31b0ba6)
The file was modified compiler/z/codegen/CallSnippet.hpp (diff)
The file was modified compiler/z/codegen/CallSnippet.cpp (diff)
Commit 32d447eb58720ec2d2a0002b22a4ed1c4f6d99d5 by Jonathan Oommen
Update pointer offset addition for dbf Scan Ordering

Update pointer offset addition for adding a hot field
offset to an object pointer in order to copy the hot
field of the object for dbf Scan Ordering in gencon GC.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: 32d447e)
The file was modified gc/base/standard/Scavenger.cpp (diff)
Commit 151a0e4683200025e2de0b09dcb20fd6959348b3 by Daryl Maier
Remove and fold code consuming x87 GlobalRegisterFPDependency property

The property is never set, hence fold code assuming getGlobalFPRegister()
always returns false.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 151a0e4)
The file was modified compiler/x/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
Commit 4b2ca0e94e423bfb700653100670ab5ac72bfc83 by Daryl Maier
Remove x87 GlobalRegisterFPDependency regdep property

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4b2ca0e)
The file was modified compiler/x/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit 6c50f7c5a5215e70ff171355bfd6c72def02ca8f by Keith W. Campbell
Create a DIE for a tag that dwarfdump-classic doesn't understand

dwarfdump-classic is an old tool that has not been updated to support
current versions of clang on macOS. We don't need to recognize the
DWARF version 5 concepts used by newer compilers, we can just ignore
them.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 6c50f7c)
The file was modified ddr/lib/ddr-scanner/dwarf/DwarfParser.cpp (diff)
Commit 24fe4e1dc52baab30daebf30b5c0001fc11eb923 by Jan Vrany
RISC-V: implement copyParametersToHomeLocation()

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 24fe4e1)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
Commit 7b6fea0c955fb1d38ae23d8427c5f32f73115e0c by Devin Nakamura
CMake: Update metal-c handling

- Move handling of -q64 flag to ensure it gets properly set regardless of
scoping

- add -qnosearch and -I/usr/include/metal by default as standard c headers
are unusable by metal-c

- Move port library metal-c files to new library to work around
limitations on older versions of cmake

- Combine metal-c compilation rules. CMake does not seem to like having
custom rules which look like generated rules. ie rules which depend on
.c files and produce .o files

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 7b6fea0)
The file was modified port/CMakeLists.txt (diff)
The file was modified cmake/modules/OmrMetalC.cmake (diff)
Commit af794eff83e51c429091ca8ff8df0c5f7a9db74c by Jan Vrany
RISC-V: add OpenJ9 specific members to linkage properties

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: af794ef)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit ee9a28fde2fbb5dda8a0f4b5ce5b38a5f38db55d by Filip Jeremic
Disable fatal message when cross compiling on CYGWIN

DDR is may supported when cross compiling, unless we are on Windows with
CYGWIN in which case we do have support.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: ee9a28f)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
Commit b4294686adcb2f32f60061a4108e7f29a96b2962 by Jonathan Oommen
Improve Parallelization of Remembered Set Scanning in Gencon

Improve the parallelization of remembered set scanning
in the final stop-the-world phase of the concurrent global
GC cycle in Gencon. Remove old solution that used command
line option  -XXgc:dirtCardDuringRSScan.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: b429468)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
Commit c18fd62b058e18119549e0fed2c7ee68e64e0b77 by Akira Saitoh
AArch64: Generate memory barrier for store if symbol is shadow and ordered

This commit changes commonStoreEvaluator to generate memory barrier
if the symbol of the node is `Shadow` and `Ordered`.
The logic for deciding whether memory barrier is generated or not
is borrowed from ppc codegen.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: c18fd62)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 351acbb0321375b62b8befd3a6c1d59f0d11fb8d by tao guan
Trim inlines header of extensible classes
  modify macro guard to INLINES
  include header same as for cpp file but not extended ones

Signed-off-by: James Guan <jamesgua@ca.ibm.com>
(commit: 351acbb)
The file was modified compiler/il/OMRSymbol_inlines.hpp (diff)
The file was modified compiler/codegen/OMRInstruction_inlines.hpp (diff)
The file was modified compiler/codegen/OMRMachine_inlines.hpp (diff)
The file was modified compiler/control/OMROptions_inlines.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator_inlines.hpp (diff)
The file was modified compiler/compile/OMRCompilation_inlines.hpp (diff)
The file was modified compiler/il/OMRTreeTop_inlines.hpp (diff)
The file was modified compiler/ilgen/OMRIlGeneratorMethodDetails_inlines.hpp (diff)
The file was modified compiler/optimizer/OMROptimizationManager_inlines.hpp (diff)
The file was modified compiler/il/OMRNode_inlines.hpp (diff)
The file was modified compiler/il/TreeTop_inlines.hpp (diff)
Commit 7d31ebb1fb0c47f958d5751eca6a135eab0ab062 by Abhishek Asawale
Change self() to protected in OMR::Compilation

The self() instance method is not supposed to be publicly visible in
extensible classes like ONR::Compilation; It should be made protected

Signed-off-by: Abhishek Asawale <abhiasawale510@gmail.com>
(commit: 7d31ebb)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 7219168011aeaed40fe46a797fa583db21d35d1d by Filip Jeremic
Deprecate isSingleRefUnevaluated

See eclipse/omr#5648 for discussion. It was decided during the OMR
architecture meeting that this API is not very clear and that inlining
it's uses is more understandable as it is very explicit as to what is
being checked.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 7219168)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/BinaryAnalyser.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
Commit 234c0aa46dc0e858a26f8b92f98e397172b0822a by Filip Jeremic
Deprecate isSingleRef

This API now has no uses and is really just checking whether reference
count is 1, so there is no need for the API to exist because we already
have `getReferenceCount`.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 234c0aa)
The file was modified compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/il/OMRNode_inlines.hpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/BinaryAnalyser.cpp (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
Commit 80b63f1fbac3ce788fede514792c296b891ab65d by Sharon Wang
Set up AIX XLClang flags for CMake builds

The new compiler ID XLClang is for CMake 3.15 and beyond.

[skip ci]

Signed-off-by: Sharon Wang <sharon-wang-cpsc@outlook.com>

Co-authored-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 80b63f1)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/xlc.cmake (diff)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
The file was modified cmake/modules/OmrDetectSystemInformation.cmake (diff)
Commit 7ada6444f47bbe803317fafeaef63ec33cbdcab1 by Salman Rana
VerboseGC Initialized Stanza Print Fix

Using `printf` methods _(e.g `omrfile_printf` & `omrfilestream_printf`)_
to write to files is problematic when the output buffer contains a
string with a specifier character (e.g %s). In such a case, the special
character is intended to be be outputted raw to the file rather than
evaluated/expanded. `printf` will attempt to evaluate the specifiers
whereas the buffer must be printed raw. Currently, `printf` methods are
used when outputting verbose initialized block (string).

When outputting the init block, use the verbose writer's `outputString`
method rather than using
- `omrfilestream_printf` for FileLoggingSynchronous Writer
- `omrfile_printf` for FileLoggingBuffered Writer

`outputString` will use `omrfile_write_text` and just print the raw
characters.

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 7ada644)
The file was modified gc/verbose/VerboseWriterFileLoggingBuffered.cpp (diff)
The file was modified gc/verbose/VerboseWriterFileLoggingSynchronous.cpp (diff)
Commit eccafd9ffe108ea841db755c880891aae14a71e7 by Benjamin Thomas
Fix s2l not sign-extending correctly

It turns out that the evaluator for s2l was incorrectly sign-extending
its source register as an integer rather than as a short. This was
previously masked by the fact that many evaluators would unnecessarily
sign-extend their results. In general, the upper bits of a register
containing a short are undefined, so it is incorrect to assume it has
been sign-extended.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: eccafd9)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit b1024d069d67716836fe7489fc2c7d747542c8ae by Benjamin Thomas
Fix s2i improperly clobbering its child's register

Previously, the Power codegen's implementation of the s2i opcode would
attempt to reuse the child node's register if its reference count was 1.
While this works most of the time, this causes issues if the child node
itself reused a register from its child. In this case, the clobbered
register may belong to a node whose reference count is not 1, which can
result in incorrect behaviour.

In general, there is no reason to try and reuse the register of the
child node in s2i, since an extsh instruction is always required. Doing
so does not avoid any register shuffles or additional instructions.
Accordingly, the s2i evaluator will now always allocate its own
register.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: b1024d0)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit 2076fd4f2a9675dd3be551f4e83e9af0a6fc0cf1 by Benjamin Thomas
Simplify Power integral narrowing conversion evaluators

The Power codegen's evaluators for performing integral narrowing
conversions (e.g. i2s) have been significantly simplified to remove
unneeded handling. Previously, some of these evaluators would perform
sign- and zero- extension, which seems to be a remnant of a time when
the upper bits of sub-integer values in registers were not considered to
be undefined.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 2076fd4)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit c475615188a1018b5a6cfb98377f7c5a864c1b5e by Benjamin Thomas
Introduce an API for creating loads/stores based on nodes

Previously, evaluation of loads and stores based on nodes was generally
handled by manually using TR::MemoryReference::createWithRootLoadOrStore
and then performing operations on the resulting memory reference.
However, this turns out to be wildly unsafe in the presence of volatile
symrefs (it requires the caller to manually check) and also requires
that MemoryReference be coupled to tree evaluation.

As a first step towards addressing this, a new API has been introduced
that generates loads and stores based on a node. This new API has the
requisite options to support existing optimizations that perform
loads/stores with different opcodes to what the node might suggest while
still hiding the details about TR::MemoryReference and volatile fences
behind a unified interface.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: c475615)
The file was addedcompiler/p/codegen/LoadStoreHandler.hpp
The file was addedcompiler/p/codegen/OMRLoadStoreHandler.hpp
The file was modified compiler/p/CMakeLists.txt (diff)
The file was addedcompiler/p/codegen/OMRLoadStoreHandler.cpp
The file was modified fvtest/compilertest/build/files/target/p.mk (diff)
Commit 362af1b64b2c9825f67faad97adfe2f862d5cd38 by Benjamin Thomas
Update integral load/store evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 362af1b)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
Commit b403050d766fc7cc9ec783e2678154bf35a308cb by Benjamin Thomas
Update vsplats evaluator to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: b403050)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
Commit dab5d8db3e2c82e2ea22b8e984f42cb9b942a75f by Benjamin Thomas
Update vdsetelem evaluator to use LoadStoreHandler
(commit: dab5d8d)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
Commit 4e41f4c8740ce1af177fc8fe938dacb933013b59 by Benjamin Thomas
Update floating-point load/store evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 4e41f4c)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
Commit f3996d5c5150732bbdda7bce2fb397c8ec09d7a7 by Benjamin Thomas
Update vector load/store evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: f3996d5)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 49887d6e902dcb4fbd2fc22a80078d2fee7f0917 by Benjamin Thomas
Update byteswap evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 49887d6)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit da4e340f98d5793eb78684ffa3a83e5ab829bedf by Benjamin Thomas
Update FP bitwise conversion evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: da4e340)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
Commit 30ffcdb0771ecc9513f4c92831430396d8350a9f by Benjamin Thomas
Update FP conversion evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 30ffcdb)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
Commit 08e7f0ec994ec488cb88368f1ded2927f3de80e1 by Benjamin Thomas
Update integral conversion evaluators to use LoadStoreHandler

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 08e7f0e)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
Commit 5d2529122e33f9c65243ebc67cf99fbfa4d2b659 by Benjamin Thomas
Update copyright dates to 2021

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 5d25291)
The file was modified compiler/p/codegen/OMRLoadStoreHandler.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/CMakeLists.txt (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/LoadStoreHandler.hpp (diff)
The file was modified compiler/p/codegen/OMRLoadStoreHandler.cpp (diff)
The file was modified fvtest/compilertest/build/files/target/p.mk (diff)
Commit 6bfb49b8d609a9e10816d300fe1f390f861c2e2c by Benjamin Thomas
Fix handling of non-volatile unresolved symrefs on ppc32

As it turns out, under certain corner cases we can generate unresolved
symrefs that are not marked as volatile. In the event that such a symref
is loaded as a long on ppc32, LoadStoreHandler would get confused and
fail to use its handling for unresolved on such symrefs. Instead, it
would generate two separate loads/stores, leaving an unused snippet that
will cause a crash later. This has been corrected and LoadStoreHandler
now checks for unresolved before checking volatility.

Signed-off-by: Ben Thomas <ben@benthomas.ca>
(commit: 6bfb49b)
The file was modified compiler/p/codegen/OMRLoadStoreHandler.cpp (diff)
Commit b0197ad0250e6c3b7b21f8a6a0433954ad64b2a3 by Leonardo Banderali
Add support for lowering optimization

This commit adds a few support pieces that must be in OMR but will be
used by the new optimization being added in OpenJ9.

Signed-off-by: Leonardo Banderali <leonardo2718@protonmail.com>
(commit: b0197ad)
The file was modified compiler/optimizer/OMROptimizations.enum (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 3243d2060e49ab996e8d7afdfcc807c4a0c0e48c by Kazuhiro Konno
Tril tests for ibits2f, etc.

This commit implements Tril test cases for ibits2f, etc.

Signed-off-by: knn-k <konno@jp.ibm.com>
(commit: 3243d20)
The file was modified fvtest/compilertriltest/JitTest.hpp (diff)
The file was modified fvtest/compilertriltest/TypeConversionTest.cpp (diff)
Commit 9abd0be67deae2e3648dead4496b646ba6b35302 by Daryl Maier
Misc. source formatting cleanup in CallStack.cpp

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 9abd0be)
The file was modified compiler/ras/CallStack.cpp (diff)
Commit 64dbab256f0d682f7769517b327d6892a3d1e5bc by Daryl Maier
Replace globalAllocator with TR::CompilerEnv rawAllocator

Allocating from the CompilerEnv raw allocator should be sufficient, and
will allow the globalAllocator to be deprecated.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 64dbab2)
The file was modified compiler/ras/CallStack.cpp (diff)
Commit 33b3bc79a0f4395f9b9700653fe4ada607f21e1e by Daryl Maier
Remove deprecated GlobalAllocator

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 33b3bc7)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
The file was modified compiler/env/FEBase.hpp (diff)
Commit 76426e5a029913a271c4bd41b24b470ce693b0e1 by Daryl Maier
Remove deprecated GlobalSingletonAllocator

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 76426e5)
The file was modified compiler/env/TRMemory.cpp (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
Commit ad8582454c64f9cfb87f12a343f487cee843a11e by Daryl Maier
Remove deprecated CS2::stat_allocator

Also remove deprecated GlobalBaseAllocator and CS2PersistentAllocator typedefs.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ad85824)
The file was modified compiler/cs2/allocator.h (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
Commit f3633d8b4b76690043457f4f3dbfc0b2d6544b42 by tao guan
Make Optimizer self() function protected

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: f3633d8)
The file was modified compiler/optimizer/OMROptimizer.hpp (diff)
Commit d84363c2c4b8703e02a8ed969fe3dff15a65a537 by Irwin D'Souza
Add relo type for a pointer to an inlined method

The purpose of this relo type is to relocate method pointers that
already exist in the inlining table, as opposed to the TR_MethodPointer
relo type that is used to relocate an arbitrary method pointer.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: d84363c)
The file was modified compiler/runtime/Runtime.hpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
Commit d95c1492811dacd47da4579c1d0f84680d078b01 by Alen Badel
Support TR_AbsoluteHelperAddress constant address loads on power

Add support to create relocations for absolute helper addresses on power.

Signed-off-by: AlenBadel <Alen.Badel@ibm.com>
(commit: d95c149)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit 6b5b6ac02b1f1e21d983544e02b1d6f474f126ee by Kazuhiro Konno
AArch64: Workaround for huge methods

This commit is a temporary workaround for huge methods.
The range of AArch64 conditional branch instruction is +/- 1MB.
This commit gives up compilation when the size of the generated code
exceeds that range.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 6b5b6ac)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit f88b97f9b716f8dcf4e6b6eaf3f6ae44e2c5d22b by Abdulrahman Alattas
Add baseReg dependency for POWER generatePairedStoreSequence

POWER generatePairedStoreSequence is missing baseReg dependency to
ensure no RA register movement during the sequence. Adding baseReg
condition to generatePairedLoadSequence dependency check to be
consistent with generatePairedStoreSequence.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: f88b97f)
The file was modified compiler/p/codegen/OMRLoadStoreHandler.cpp (diff)
Commit 7e9a012d5c8c0cd574e4b4d21fb3c89b0499f364 by Jason Hall
Exclude percolate GC CPU time from stats

Add a new flag to GC heap stats and set it on percolate start
for JNI Critical Region percolates. On GC cycle end, exclude
the GC time from the GC CPU time if the flag is set.

The extra condition added to maximum heap heuristic checks
causing no contraction when the computed heuristic was arbitrarily
greater than 100 has also been removed.

Signed-off-by: Jason <jasonhal@ca.ibm.com>
(commit: 7e9a012)
The file was modified gc/stats/HeapResizeStats.hpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.cpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.cpp (diff)
Commit 6b54617adfd151189a89c708d8f3cce7ea8ccec7 by Daryl Maier
Prepare non-helper symbol printing for extensibility

Introduce a new function `getNonHelperSymbolName()` to retrieve the
name of a non-helper symbol.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 6b54617)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
Commit 86eae37cf235605ef5a585a42f2e742c13762c70 by Daryl Maier
Make NonHelperSymbols enum extensible

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 86eae37)
The file was addedcompiler/compile/OMRNonHelperSymbols.enum
The file was addedcompiler/compile/NonHelperSymbols.enum
Commit 0023c49f6371e43c05f2adb75031c67289f04b83 by Daryl Maier
Migrate OpenJ9-specific non-helpers to OpenJ9

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 0023c49)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
Commit 480770d0ee0a8bdca4f1d33958066c0262afe66d by Keith W. Campbell
Address some warnings from clang on macOS

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 480770d)
The file was modified compiler/x/codegen/DataSnippet.cpp (diff)
The file was modified compiler/ilgen/ByteCodeIteratorWithState.hpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
Commit 60ada7daa9b658a7f15ca234dd3368d3cbd51d79 by Keith W. Campbell
Add support for CUDA version 11.2

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 60ada7d)
The file was modified port/common/omrcuda.cpp (diff)
Commit c06a44ba93bb114ca560be01d57cd13e6ca14fe4 by Keith W. Campbell
Reduce use of OMR_HOST_OS

* prefer flags over string comparisons

Flag            | Replaces
:---            | :-------
OMR_OS_AIX      | OMR_HOST_OS STREQUAL "aix"
OMR_OS_BSD      | OMR_HOST_OS STREQUAL "bsd"
OMR_OS_LINUX    | OMR_HOST_OS STREQUAL "linux"
OMR_OS_OSX      | OMR_HOST_OS STREQUAL "osx"
OMR_OS_WINDOWS  | OMR_HOST_OS STREQUAL "win"
OMR_OS_ZOS      | OMR_HOST_OS STREQUAL "zos"

See OmrDetectSystemInformation.cmake.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: c06a44b)
The file was modified fvtest/threadtest/CMakeLists.txt (diff)
The file was modified util/CMakeLists.txt (diff)
The file was modified fvtest/jitbuildertest/CMakeLists.txt (diff)
The file was modified cmake/config.cmake (diff)
The file was modified fvtest/porttest/CMakeLists.txt (diff)
The file was modified fvtest/omrGtestGlue/CMakeLists.txt (diff)
The file was modified util/omrutil/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified port/CMakeLists.txt (diff)
The file was modified cmake/modules/OmrPlatform.cmake (diff)
The file was modified fvtest/tril/tril/CMakeLists.txt (diff)
The file was modified thread/CMakeLists.txt (diff)
The file was modified fvtest/gctest/CMakeLists.txt (diff)
The file was modified fvtest/threadextendedtest/CMakeLists.txt (diff)
The file was modified fvtest/algotest/CMakeLists.txt (diff)
The file was modified fvtest/utiltest/CMakeLists.txt (diff)
The file was modified fvtest/sigtest/CMakeLists.txt (diff)
The file was modified ddr/lib/ddr-scanner/CMakeLists.txt (diff)
The file was modified omrsigcompat/CMakeLists.txt (diff)
The file was modified fvtest/compilertriltest/CMakeLists.txt (diff)
Commit 8edf75f6cb17839ccc59a3b21e639099babe6bcf by Filip Jeremic
Add useful comment for disableGuardedCountingRecompilation option

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 8edf75f)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit ac25e08422a1940786ddde785a037a350d14b8fa by Abhishek Asawale
Change self() to protected in OMR::AliasBuilder

Signed-off-by: Abhi <abhiasawale510@gmail.com>
(commit: ac25e08)
The file was modified compiler/compile/OMRAliasBuilder.hpp (diff)
Commit 7a2411b9a2c2a51a4d5bc1920e0da041422df8de by Abhishek Asawale
Change self() to protected in OMR::SymbolReferenceTable

Signed-off-by: Abhi <abhiasawale510@gmail.com>
(commit: 7a2411b)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
Commit 0db12fecd30c97f1a23a3e80728bd984e5f266b2 by Abhishek Asawale
Change self() to protected in OMR::Method

Signed-off-by: Abhi <abhiasawale510@gmail.com>
(commit: 0db12fe)
The file was modified compiler/compile/OMRMethod.hpp (diff)
Commit 46e59bffd9da107b8e078adc3c2c0a75711c541c by Filip Jeremic
Deprecate PrefetchInsertion optimization

The optimization has O(n^2) complexity and is currently disabled for
forward array traversals, and recently we've had to disable it under
all array traversals for concurrent scavenge. As read barriers become
more prominent, the introduction of the dataAddr pointer in the header
will force us to further limit this optimization.

This optimization was originally introduced in 2010 for z196
z/Architecture processor to accelerate SPEC workloads. It showed
minimal improvement (1.5%) according to historical data dug up prior to
open sourcing the project. The hardware is hardly used today since it
is so old. In recent iterations of the hardware, software prefetching
has been discouraged due to advancements in hardware prefetching.
Similar observations were seen when we removed prefetching from our
zero memory routines.

Moreover, the phantom words past the end of the GC heap were removed
several years ago, forcing us to disable this optimization for forward
array traversals. As mentioned previously we have been encountering
bugs in this optimization recently due to changes in the JVM and the
fact that this optimization introduces loads on the heap which
previously did not exist.

In the PR we detail performance numbers for several workloads where
we believed this optimization may have provided a benefit. Across all
platforms measured we no longer see a benefit (and sometimes a
degradation) from running this optimization. Here we deprecate the
optimization as we still have access to the original source code in
the history if we ever need to resurrect this effort.

Signed-off-by: Filip Jeremic <fjeremic@ca.ibm.com>
(commit: 46e59bf)
The file was modified compiler/optimizer/CMakeLists.txt (diff)
The file was removedcompiler/optimizer/PrefetchInsertion.cpp
The file was modified compiler/optimizer/OMROptimizationManager.cpp (diff)
The file was modified jitbuilder/build/files/common.mk (diff)
The file was modified compiler/optimizer/OMROptimizations.enum (diff)
The file was removedcompiler/optimizer/PrefetchInsertion.hpp
The file was modified fvtest/compilertest/build/files/common.mk (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/OptimizationStrategies.hpp (diff)
The file was modified compiler/optimizer/OMROptimizationGroups.enum (diff)
Commit f3968438515789fe9948c98ad26aa47c02f60824 by Abhishek Asawale
Updated copyright date in OMRCompilation.hpp

Signed-off-by: Abhi <abhiasawale510@gmail.com>
(commit: f396843)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 8e4c7ebf4d666dda17a53d6d37afff530759d744 by Adam Brousseau
Increase build & test timeout to 2 hours

Particularly due to riscv hitting the 1 hour timeout.

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
(commit: 8e4c7eb)
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
Commit a51b0b057bb0841f0d988ba622f03bcd674b9712 by Igor Braga
Update dataAddr whenever GC moves indexable object

Update GC code to make sure whenever an indexable object
moves, the object  will always contain the correct dataAddr
value, which is the address pointing right after array
header.

Introduce pre/postObjectMoveForCompact wrapers for
EnvironmentDeletegate pre/postObjectCompact API for object
compaction fixup

This is phase 2 of https://github.com/eclipse/openj9/issues/11438

Signed-off-by: Igor Braga <higorb1@gmail.com>
(commit: a51b0b0)
The file was modified gc/base/EnvironmentBase.hpp (diff)
The file was modified example/glue/ArrayletObjectModel.hpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/standard/CompactScheme.hpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/standard/CompactScheme.cpp (diff)
Commit b3633d93744ad4ee29782debc341263aa7f7e21d by tao guan
Remove unused TR_FrontEnd parameter from HedgeTree print and printTree

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: b3633d9)
The file was modified compiler/infra/HedgeTree.hpp (diff)
Commit e4eccdddd85fedf057c9ef2e66be2b395a5061a3 by Keith W. Campbell
Fix reading of version from tracepoint data files

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: e4eccdd)
The file was modified omrtrace/omrtracecomponent.cpp (diff)
Commit ff9ac313d5aa008be05a1318f954a3fbdf308b4d by Dmitry Ten
Access system class loader using a front-end query

Symbol Reference Table accessed the class loader directly,
instead of going through the front-end query, which may lead
to `TR_ASSERT_FATAL` triggered on JITServer.

Closes: #5837

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: ff9ac31)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
Commit 3710496bc07a83cfbefe083bf578f4121639354c by Daryl Maier
Remove allocator name fields

Unused in OMR and known downstream projects.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 3710496)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/optimizer/UseDefInfo.hpp (diff)
The file was modified compiler/cs2/allocator.h (diff)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
Commit 65bff8fac5656278a8d35b4bdd4b409323875cf9 by Daryl Maier
Remove unused arena allocator factory function for LabelSymbol

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 65bff8f)
The file was modified compiler/il/OMRLabelSymbol.cpp (diff)
Commit 396702a0ef26a320872c42dbfe6ec63ba492365c by Daryl Maier
Remove unused allocator parameter from NodePool constructor

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 396702a)
The file was modified compiler/il/NodePool.hpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/il/NodePool.cpp (diff)
Commit 11a5cc67087b7dfded4b39cfb3bb77648b7bc442 by noreply
Revert "Update dataAddr whenever GC moves indexable object"
(commit: 11a5cc6)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/standard/CompactScheme.hpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/standard/CompactScheme.cpp (diff)
The file was modified example/glue/ArrayletObjectModel.hpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
Commit 2a92028fc11e8e5bc2f25bd4a7f86eb4645a763d by Daryl Maier
Remove unused stats collection functions from CS2 allocators

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2a92028)
The file was modified compiler/cs2/allocator.h (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
Commit 09c962178a8bc640e03e29cd5e657a5497209f47 by Irwin D'Souza
Get TR_OpaqueMethodBlock correct under relocatable compilations

The _methodInfo field of TR_InlinedCallSite actually holds a
TR_ResolvedMethod under relocatable compilation. As such, checkOSRLimits
was incorrect passing in the TR_ResolvedMethod to OSRFrameSizeInBytes.
Tihs commit fixes this.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 09c9621)
The file was modified compiler/compile/OSRData.cpp (diff)
Commit eb46bc9939c6ccafa111c1e5b9cebf79d009a556 by Daryl Maier
Replace genie-omr with Jenkins in CI documentation

[skip ci]

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: eb46bc9)
The file was modified doc/GuideForCommitters.md (diff)
The file was modified buildenv/jenkins/README.md (diff)
Commit a1009000d43a8e34b7e64b680d1ee7b736dd4f30 by Joran Siu
CEL4RO31 support for shared library load, lookup and close

Leverage the new LE CEL4RO31 support to enable zOS 64-bit portlib
to load 31-bit shared libraries, lookup target functions.

Co-authored-by: Babneet Singh <sbabneet@ca.ibm.com>
Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: a100900)
The file was addedport/zos390/omrcel4ro31.c
The file was modified port/CMakeLists.txt (diff)
The file was modified port/port_objects.mk (diff)
The file was addedport/zos390/omrcel4ro31.h
The file was modified port/zos390/omrsl.c (diff)
The file was modified include_core/omrport.h (diff)
Commit d236e95996a6dfe53a740584b0297f900a11c369 by Joran Siu
Introduce _CEE3164_ENVFILE as a temporary workaround

Due to LE limitation, we need to pass environment variables via _CEE_ENVFILE.
Different launchers may unset _CEE_ENVFILE in order for child processes to
pick up LIBPATH updates, we need to copy the _CEE3164_ENVFILE env var
to _CEE_ENVFILE  on first invocation of CEL4RO31.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: d236e95)
The file was modified port/zos390/omrsl.c (diff)
Commit 66535171964ac1df2e2e014635bad39392c35348 by Rahil Shah
Relax the assertion in RegDepCopyRemoval

While replacing with new node in RegDepCopyRemoval, we check if the
passthrough node attached to the register dependency has corresponding
regStore which is needed if if later optimization decides to split the
blocks. Currently we were throwing assert while creating
copyToNewVirtualRegister node under dependency where a global register
used by passThrough is different than the global register used by the
value node under it. As we are going to generate a regStore for that
passthrough node, we do not need this strict assert.

Fixes: eclipse/openj9#11943

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 6653517)
The file was modified compiler/optimizer/RegDepCopyRemoval.cpp (diff)
Commit 79ec7cabdbea58750079d27d43c1dbb4254f6c0d by Igor Braga
Update dataAddr whenever GC moves indexable object

Update GC code to make sure whenever an indexable object
moves, the object  will always contain the correct dataAddr
value, which is the address pointing right after array
header.

Introduce pre/postObjectMoveForCompact wrapers for
EnvironmentDeletegate pre/postObjectCompact API for object
compaction fixup

This is phase 2 of eclipse/openj9#11438

Same PR/commit as https://github.com/eclipse/omr/pull/5795
with concurrent scavenger fix. Previously we were updating
dataAddr in indexable object headers inside Scavenger by
calculating the object's layout based on the actual object.
However, during concurrent Scavenger there can be
scenarios where the object will be in the middle of being
copied; therefore, destination object won't contain the
proper header. Therefore we can find this information from
the forwarded header.

Signed-off-by: Igor Braga <higorb1@gmail.com>
(commit: 79ec7ca)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified example/glue/ObjectModelDelegate.hpp (diff)
The file was modified example/glue/ObjectModelDelegate.cpp (diff)
The file was modified gc/base/standard/CompactScheme.hpp (diff)
The file was modified example/glue/ArrayletObjectModel.hpp (diff)
The file was modified gc/base/standard/CompactScheme.cpp (diff)
The file was modified gc/base/EnvironmentBase.hpp (diff)
Commit f5aba929975ce215d8d6b2a41c6d9e9ec23bc552 by Leonardo Banderali
Increase size of buffer in block validation

Previously, a buffer size of 100 characters was passed to sprintf in the
block validator. However, the format string itself is 94 characters,
which doesn't leave enough room in the buffer for the print arguments.
As a result, running the block validator (e.g. with paranoidOptCheck)
can lead to a buffer overflow.

This commit fixes the issue by increasing the size of the buffer to 150
characters.

Signed-off-by: Leonardo Banderali <leonardo2718@protonmail.com>
(commit: f5aba92)
The file was modified compiler/ras/Tree.cpp (diff)
Commit 56aa1586f8961883e0832d14c765017dec35d109 by Akira Saitoh
AArch64: Support Internal Pointer

This commit adds internal pointer support to following 2 methods.

- `OMR::ARM64::CodeGenerator::gprClobberEvaluate`
- `OMR::ARM64::MemoryReference::consolidateRegisters`

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 56aa158)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit 9e10331fce0e8098d306e59d5e92af4066743085 by Akira Saitoh
AArch64: Enable Internal Pointer

This commit enables internal pointer support for aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 9e10331)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit 403d231b3b492a216eb64620ff6f412d6d0147d5 by Salman Rana
Adaptive GC Threading

**_For background and results see
https://github.com/eclipse/omr/issues/5829_**

> Using overhead data (busy/stall times for managing and synchronizing
threads), Adaptive Threading aims to identify sub-optimal/detrimental
parallelism and continuously adjusts the GC thread count to reach
optimal parallelism.

_Adaptive Threading changes are implemented at the various phases of GC
as follows, during:_

1. **Pre-collection _(during to task/thread dispatch)_:** to adjust
thread count based on the previous cycle’s recommendation
2. **Collection:** to gather data for parallelization overhead for the
running cycle
3. **Post-collection _(after worker threads are suspended)_:** to
project/calculate optimal thread count and give recommendation for the
next cycle based on the current GC that’s completed

Adaptive threading will be enabled by default. The user may choose to
enable/disable adaptive threading through the
`-XX:[+-]AdaptiveThreading` options. However Adaptive Threading is
ignored, even if it is enabled, when GC thread count is forced (e.g user
specifics Xgcthreads). The user can also specify upper thread limit for
adaptive threading using  `-Xgcmaxthreads` option.

_The specifics of the implementation are as follows:_

-  Thread count associated with a parallel task instance, indicates the
projected optimal number of threads to complete the task.
- Drives Adaptive Threading - changes with each dispatch of the task,
based on observations made when previously completing the same task
- Currently, adaptive threading is only used with  _Scavenger_,  hence
this is only applies to tasks of type `MM_ParallelScavengeTask` so a
recommended thread count is provided with a new `ParallelScavengeTask`
instance (i.e when scavenge is run)
-  `getRecommendedWorkingThreads` introduced to `MM_Task` base class,
base implementation returns `UDATA_MAX` (signifies no adaptive
threading), overridden  by `ParallelScavengeTask` to return adaptive
thread count.

during collection):
- ` _workerScavengeStartTime` and `_workerScavengeEndTime`
  - Thread local task (scavenge) start/end timestamps taken when worker
thread starts/competes a task (scavenge). This is used to determine the
time it takes a worker to start collection task from the time a cycle
starts and how long a worker waits for others when it is completed its
task.
- `_adjustedSyncStallTime`
  - Similar to the existing `_SyncStallTime` stat **except** it accounts
for Critical Section duration. That is, it subtracts   critical section
duration from stall time of synced thread. This is because the stall
time being added from critical section is independent of number of the
threads being synchronized. This independent stall time can not be
adjusted for, hence it must be ignored. This is relevant for
`syncAndRealeaseSingle/Master` APIs as they are the only APIs that
record a stall time with critical sections, without these,
`_SyncStallTime` == `_adjustedSyncStallTime`
  - existing `addToSyncStallTime` method extended  to update
`_adjustedSyncStallTime` in addition to `_SyncStallTime`.
`addToSyncStallTime` now takes  `criticalSectionDuration` (defaults to
0) as an input, a value for it passed when a critical section is
executed prior to updating stall stats .
- `_notifyStallTime `
   - Used to record the stall times resulting from notifying other
waiting threads. Note, this stat is not inclusive, it only records
notify times relevant to adaptive threading.
   - We are more concerned about recording 'notify_all' rather than
'notify_one' as 'notify_all' is dependent on the number of threads being
notified.

- Introduced `calculateRecommendedWorkingThreads` routine
  - Called at the end of each successful scavenge to project optimal
threads for next scavenge
  - Implements Adaptive Model _(see background for more info)_
  - Calculates averages of stall stats and uses them as inputs to
adaptive model, projected optimal thread count output is stored to new
member `_recommendedThreads`.
  - Timestamps taken for worker thread scavenge start/end time
- `notifyStallTime` recorded  for `notify_all` on `_scanCacheMonitor`
_(some instances are ignored as they are not relevant to adaptive
threading such as backout cases)_
- `MergeThreadGCStats` updated to merge new scavenger stats (discussed
above)
  - trace point added here to breakdown thread local stats for adaptive
threading

for Adaptive Threading
- Dispatcher now queries the task for the recommended thread count when
determining the number of threads to release from thread pool to
complete the task
  - Ensures thread count is bounded properly to respect max thread
count, either user provided adaptiveThreadCount or default max.

- `_syncCriticalSectionStartTime` & `_syncCriticalSectionDuration`
introduced to record Critical Section times for adjusted stall time
  -  `_syncCriticalSectionStartTime` recorded when all threads are
synced and the released thread is about to exit sync api to execute
critical section
  - `_syncCriticalSectionDuration` is recored when thread executing
critical section is about to release the synced thread (indicating
critical section is complete). As synced threads are released, they
update their stall time with the newly set critical section duration.
- `notifyStallTime` recorded  for `notify_all` on synced threads

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 403d231)
The file was modified gc/base/Task.hpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/standard/ParallelScavengeTask.hpp (diff)
The file was modified gc/base/ParallelTask.cpp (diff)
The file was modified gc/base/standard/ParallelScavengeTask.cpp (diff)
The file was modified gc/base/ParallelDispatcher.cpp (diff)
The file was modified gc/base/standard/ConcurrentScavengeTask.hpp (diff)
The file was modified gc/stats/ScavengerStats.hpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/stats/ScavengerStats.cpp (diff)
The file was modified gc/base/ParallelTask.hpp (diff)
The file was modified gc/base/j9mm.tdf (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
Commit 04d43b6c466d2f9c88ba09baaf2c7303a7a41ce0 by Keith W. Campbell
Suppress MSVC version banner

Add '-nologo' option for MSVC compiler.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 04d43b6)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
Commit f377a6fe4d04839ddc58abc25f840f9c0dbaba01 by Keith W. Campbell
Remove redundant file removal

There's no need to remove a file that's about to be overwritten.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: f377a6f)
The file was modified cmake/modules/ddr/GenerateStub.cmake (diff)
Commit da2df35fbf1284aaecdf9cd1568f6ee734245e44 by Keith W. Campbell
DDR: omit blank lines in annt files

Remove CR and trailing whitespace.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: da2df35)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
Commit 3533681a6f1924e5c351278fbf4274011cf87214 by Dmitry Ten
Refactor TR_AOTMethodInfo out of TR_InlinedCallSite

Previously, `TR_InlinedCallSite::_methodInfo` stored either
a method pointer during a regular compilation,
or `TR_AOTMethodInfo *` during an AOT compilation,
despite `_methodInfo` having `TR_OpaqueMethodBlock *` type.
This makes the code prone to subtle bugs like #5845.

This commit moves storage of `TR_AOTMethodInfo *` outside of
`TR_InlinedCallSite`, putting it in `TR_InlinedCallSiteInfo`
which allows to simplify the definition of `TR_InlinedCallSite`
and places where it is used.

Closes: #5844

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: 3533681)
The file was modified compiler/env/jittypes.h (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/env/FrontEnd.cpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
The file was modified compiler/optimizer/RedundantAsyncCheckRemoval.cpp (diff)
Commit b6ddcc30d3200319df0259da040c06ec5d734594 by Daryl Maier
Rename 'beginner' label to 'good first issue'

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: b6ddcc3)
The file was modified doc/GitCrashCourse.md (diff)
The file was modified README.md (diff)
The file was modified CONTRIBUTING.md (diff)
Commit f769d43e82638a7c5dd3cf85999cb749072ee5d3 by Akira Saitoh
AArch64: Fix genericBinaryEvaluator for internal pointer case

Avoid reusing source register when node is `aladd` because the target register
can contain an internal pointer. Exception is when the source register
also conatins an internal pointer and has the same pinning array pointer
as the node.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: f769d43)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 23941986151f4029449cc43d565ecee2560e1fcd by Aleksandar Micic
Adjust cardCleaningThreshold for language specific kickoff

When transitioning from tracing only state to tracing and card cleaning
state, account that pre-calculated remaining free memory for card
cleaning kickoff threshold should be higher if global kickoff was due to
reasons other than low free memory such a language specific kickoff
(class unloading).

The adjustment for card cleaning kickoff threshold is exactly the same
as the difference between actual free memory at the time of global
kickoff and expected free memory global kickoff threshold.

Without the adjustment, card cleaning and any other states after (most
importantly final STW phase where we reclaim memory) are delayed till
(incorrectly very low) pre-calculated card cleaning threshold is met,
effectively negating any efforts of the early language specific kickoff.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: 2394198)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit da661475af961e6d79f3c5395a1200972425996e by Aleksandar Micic
Increment Exclusive count for percolate Global

This helps avoid unnecessary (duplicate) Global GC in case one thread is
triggering final STW step of Concurrent global (due to exhausted
concurrent work),and another thread triggering Scavenge that ends up
percolating to Global.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: da66147)
The file was modified gc/base/MemorySubSpace.cpp (diff)
Commit b2217c143279b21f0ea6073e35bf1ff678d6fa03 by Kenneth Cox
Remove declaration and definition of movedObjectHashCode

Signed-off-by: Kenneth cox <differentialcalc1050@gmail.com>
(commit: b2217c1)
The file was modified include_core/omr.h (diff)
Commit 2b0dfe6af252e5eea47faf7a5086d83370bd1d19 by Daryl Maier
Add flag to disable loadaddr specialization in x86 MemoryReferences

Presently in the x86 code generator, there is an optimization during
MemoryReference creation that always assumes that accesses to local
objects via a loadaddr should use the frame register, as opposed
to evaluating (or re-using) the register associated with the loadaddr
as the base register.

Add an environment variable `TR_useLoadAddrRegisterForLocalObjectMemRef`
to disable this optimization for diagnostic purposes.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 2b0dfe6)
The file was modified compiler/x/codegen/OMRMemoryReference.cpp (diff)
Commit d9c0dbc16d55a0b0053668bfa2cf54dc4cc5c48a by Akira Saitoh
AArch64: Support PRFM instruction

Add ARM64MemImmInstruction class and generateMemImmInstruction helper function.
Add enum class for Prefetch operations.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: d9c0dbc)
The file was modified compiler/aarch64/codegen/GenerateInstructions.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff)
Commit a7a8d40c581a1d9b7591a8d539c1b6848f3ed8d7 by Daryl Maier
Remove unused _gpuParms and _gpuBlockDimX fields from Compilation class

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a7a8d40)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit d8030ee80e35c7f9df7dd1c82f09686bec13657f by Daryl Maier
Move snippets-to-be-patched lists from Compilation to CodeGenerator

Migrate the following fields and getter functions from the Compilation
class to CodeGenerator where they more naturally belong (they are used
exclusively during the code generation phase):

* _snippetsToBePatchedOnClassRedefinition
* _snippetsToBePatchedOnClassUnload
* _methodSnippetsToBePatchedOnClassUnload

Re-route all uses to the CodeGenerator versions.

Do not remove the Compilation code just yet as downstream consumer
code also needs to be changed.  Re-route Compilation functions to
call the corresponding CodeGenerator function.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: d8030ee)
The file was modified compiler/z/codegen/ConstantDataSnippet.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
The file was modified compiler/aarch64/codegen/ConstantDataSnippet.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
Commit 8729317050fcf3abd425bc3653b63bab5ee9be2d by Daryl Maier
Consolidate duplicate code to remember snippets containing class pointers

Create a common function to remember data snippets containing class
pointers that need to be patched on class unloading or redefinition
events.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 8729317)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
Commit 15dca83af638b3ffd5d75fce51b8bfeeae9c8723 by Peter Shipton
Allocate correct buffer size in omrsysinfo_get_OS_type()

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: 15dca83)
The file was modified port/win32/omrsysinfo.c (diff)
Commit f842ddc3122043e90f56b3b1d5178dd8f1c6a22f by Peter Shipton
Better detection of Windows 10 in omrsysinfo_get_OS_type()

If _WIN32_WINNT_WIN10 isn't defined, which it isn't for VS2013, use
deprected GetVersionEx() to detect Windows 10.

Issue https://github.com/eclipse/openj9/issues/12260

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: f842ddc)
The file was modified port/win32/omrsysinfo.c (diff)
Commit 365121eeebbf03ee23e3c4af3cf7c4c215e02558 by Peter Shipton
Compute Windows 10 build number in omrsysinfo_get_OS_version()

This fixes two problems. If _WIN32_WINNT_WIN10 isn't defined, which it
isn't for VS2013, use deprecated GetVersionEx() to detect Windows 10.
Also query the Windows 10 build number instead of hard coding an old
build number.

Issue https://github.com/eclipse/openj9/issues/12260

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: 365121e)
The file was modified port/win32/omrsysinfo.c (diff)
Commit 0329ee13f6a0dd359f50ab2caa7e54b4a32c60f1 by Akira Saitoh
AArch64: Add class unloading pic site to address constant

This commit changes `aconstEvaluator` to load address constant
with `ConstantDataSnippet` if class unload assumption is required.
It also changes `loadAddressConstantInSnippet` to add
class unloading pic site to those snippets.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 0329ee1)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
Commit 488b6e8e5ae273a5f53cfed308dd53a4357f70bf by Liqun Liu
Add opt methodHandleTransformer

Signed-off-by: Liqun Liu <liqunl@ca.ibm.com>
(commit: 488b6e8)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/OMROptimizations.enum (diff)
Commit 7579b9acec7eb0dd911236c2b07ff8ed990b16a9 by Daryl Maier
Guard adaptiveThreadingEnabled() for OMR_GC_MODRON_SCAVENGER only

When `OMR_GC_MODRON_SCAVENGER` is not enabled the GC fails to compile.

Also, correct the spelling in the function name and fixup references.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 7579b9a)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
Commit 1a639d3ca02fc035c55ecd0d886aa10a55134213 by Daryl Maier
Fix AArch64 compile failures

`getMethodSnippetsToBePatchedOnClassUnload()` and `getSnippetsToBePatchedOnClassUnload()` have
recently moved to the `CodeGenerator` class.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 1a639d3)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit c03692eda3ebd4ebdeef38eaf7bd9450896d7914 by Peter Shipton
Fix memory leak from omrsysinfo_get_OS_version()

omrsysinfo_get_OS_version() allocates memory for the Windows 10 version
that needs to be freed.

See https://github.com/eclipse/omr/pull/5873

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: c03692e)
The file was modified port/win32/omrsysinfo.c (diff)
The file was modified port/win32_include/omrportpg.h (diff)
Commit 42d73ef2056543d792bbbd884b07d2a89c474300 by Md. Alvee Noor
AArch64: Vector add/ orr instruction inclusion

This commit adds AArch64 VFP instructions for vector add and bitwise
inclusive or operations. Following data-types are covered by the vector
add instructions-
- VectorInt8
- VectorInt16
- VectorIntFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 42d73ef)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
Commit fe78cd7444c00cb4ebf523c7c03d9b4af391aa4b by Md. Alvee Noor
AArch64: Vector register support on stack mapping

This commit handles vector data-types on stack mapping and aligns the
stack index to 16-bytes.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: fe78cd7)
The file was modified compiler/aarch64/codegen/ARM64SystemLinkage.cpp (diff)
Commit c8422286ecc1164a55664bcc919bb0184af52ee7 by Md. Alvee Noor
AArch64: Vector load and store support

This commit adds the following support for vector operations-
- Quad-word vector load and store operations, and relevant binary
encodings.
- Handles vector registers for register dependency.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: c842228)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRealRegister.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 35728e55238ede0d21a91ec7af943ed2d215c74a by Md. Alvee Noor
AArch64: Vector add implementation

This commit implements the vector add operations for the following
data-types-
- VectorInt8
- VectorInt16
- VectorIntFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 35728e5)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 25a4fc2930f542f1e17a71ca8c1beb7dc133db0d by Alexey Khrabrov
Add memory object type for OpenJ9 JITServer AOT cache

This commit adds a new memory object type that will be used by the
JITServer AOT cache in OpenJ9.

Signed-off-by: Alexey Khrabrov <khrabrov@cs.toronto.edu>
(commit: 25a4fc2)
The file was modified compiler/env/TRMemory.hpp (diff)
The file was modified compiler/env/TRMemory.cpp (diff)
Commit f8aec141bce3330eedb5c8f0c745508e0ebcfaae by Daryl Maier
Remove unused _noEarlyInline field from Compilation class

Not consumed in OMR or any known downstream project.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: f8aec14)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
Commit afaf1135260c7d94586001b02008e922c3042b28 by Akira Saitoh
AArch64: Add register related virtual method to ARM64MemInstruction

Add refsRegister/usesRegister/defsRegister/defsRealRegister/assignRegister
to ARM64MemInstruction class and change child classes to call those methods.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: afaf113)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
Commit 7120a360d96bf4d773a2c07f39032e6fa1745197 by Md. Alvee Noor
AArch64: Vector add tril test

This commit adds test-cases for the vector add implementation on
relevant tril test- VectorTest for the following vector data-types-
- VectorInt8
- VectorInt16
- VectorFloat

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 7120a36)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit 036741eb928dcf364b862c1edb05938a9638316c by Md. Alvee Noor
AArch64: Vector subtraction opcode inclusion

This commit adds AArch64 VFP instructions for vector subtraction
operations. Following data-types are covered by these instructions-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 036741e)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit 01620d99c79dcfb3c8f0d0f67753d570728b1bae by Md. Alvee Noor
AArch64: Vector subtraction implementation

This commit implements the vector subtraction operations for the
following data-types-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 01620d9)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 4f14314e0424c1e44bf60c8376fce460d6183ad9 by Jinghua Feng
Map OMRPORT_RESOURCE_ADDRESS_SPACE to RLIMIT_MEMLIMIT for z/OS 64 bit

z/OS application using IARV64/__moservices can only allocate memory at
"memory above bar" which is specified by RLIMIT_MEMLIMIT, not RLIMIT_AS.


Signed-off-by: Jason Feng <fengj@ca.ibm.com>
(commit: 4f14314)
The file was modified port/unix/omrsysinfo.c (diff)
Commit 5a080e6d7b88337f4e413baf42a54055be2d23d9 by Jan Vrany
RISC-V: refactor `initRVRealRegisterLinkage()` to use (new) FOR_EACH_RESERVED_REGISTER()` macro

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 5a080e6)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 4f64d573ab4136f26bf02a8b7987d6682782c905 by Devin Nakamura
CMake: Remove ASM-ZOS

zos specific asm dialect serves no purpose.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 4f64d57)
The file was removedcmake/modules/CMakeASM-ZOSInformation.cmake
The file was modified cmake/modules/OmrPlatform.cmake (diff)
The file was removedcmake/modules/CMakeTestASM-ZOSCompiler.cmake
The file was removedcmake/modules/CMakeDetermineASM-ZOSCompiler.cmake
The file was modified cmake/modules/platform/os/zos.cmake (diff)
Commit 505d83439a95c5735f5df66d7fb44f668340bb28 by Kazuhiro Konno
Skip some tests in compilertriltest on AArch64

This commit adds SKIP_ON_AARCH64() and SKIP_IF() to the tests of opcodes
that are not supported yet on AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 505d834)
The file was modified fvtest/compilertriltest/ShiftAndRotateTest.cpp (diff)
The file was modified fvtest/compilertriltest/ArithmeticTest.cpp (diff)
The file was modified fvtest/compilertriltest/MaxMinTest.cpp (diff)
The file was modified fvtest/compilertriltest/CompareTest.cpp (diff)
The file was modified fvtest/compilertriltest/IfxcmpgeReductionTest.cpp (diff)
Commit 77cea001e216a9fb4e130a75acfb0a8397c5c38d by Irwin D'Souza
Add TR_VMINLMethod relo type

This relo type is needed in Eclipse OpenJ9 to relocate method pointers
that are special and known within the VM.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 77cea00)
The file was modified compiler/codegen/Relocation.cpp (diff)
The file was modified compiler/runtime/Runtime.hpp (diff)
Commit 8385ad23a592aa18d80ac3d4ae1aa4e008fc1ef1 by Nazim Bhuiyan
Add computedStaticCallSymbol

This symbol is intended to facilitate setting up computed calls
for methods that are yet to be compiled. Also updated
OMRNonHelperSymbols.enum with this symbol as well as
j9VMThreadTempSlotFieldSymbol.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 8385ad2)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit ea5be4663546c674a71d800acaa782cfc6dbc1d0 by Md. Alvee Noor
PPC: Exclude tril tests

This commit excludes tril tests for VectorInt8 & VectorInt16 for PPC
platform as it does not have support for these data types.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: ea5be46)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit fd15d9a8087b54ed3a61766ace9e0b000b507c18 by Md. Alvee Noor
AArch64: Vector sub tril test

This commit adds test-cases for the vector subtraction tril tests in
VectorTest for the following vector data-types-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: fd15d9a)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit ba8cfe61f4aab02e3c95e2ea0be7552e7d131d4c by Akira Saitoh
AArch64: Print instruction comments for branch instructions

This commit adds `printInstructionComments()` call to debug print functions
of branch instructions.
(commit: ba8cfe6)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit f0ca449059128e60669cbaf2db561d00af11079a by Akira Saitoh
AArch64: Enable using VirtualGuardNOP as branch to OOL section.

Handle VirtualGuardNOP as a branch instruction to OOL section.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: f0ca449)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
Commit be400f09628c34f5588515f6abc4d8f637f29dd0 by Irwin D'Souza
Initialize TR_X86ProcessorInfo once

TR_X86ProcessorInfo is currently used in OMR because the compiler does
not yet have access to the portlib. Therefore, it has to determine the
processor features itself. In order to not initialize
TR_X86ProcessorInfo multiple times a flag is set. However, it is
a race possible if there are multiple compilations, as is the case in
Eclipse OpenJ9. Because the processor feature flags were copied from the
target TR::Environment set in TR::Compilation object, if two racing
compilations had different target environments, the feature flags could
become inconsistent.

This commit initializes the processor info just once in
OMR::CompilerEnv::initializeTargetEnvironment().

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: be400f0)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/env/OMRCompilerEnv.cpp (diff)
The file was modified compiler/x/env/OMRCPU.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/env/OMRCPU.cpp (diff)
The file was modified compiler/env/JitConfig.hpp (diff)
The file was modified compiler/env/OMRCPU.hpp (diff)
Commit bfa41af3b34f79292329f89e7a16396043c051d9 by Jan Vrany
RISC-V: move FOR_EACH_*_REGISTER() macros to OMRLinkage.hpp

This makes them available for use in other linkages too.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: bfa41af)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
Commit dd45ea2ff8ecd3adc7bb3fe24c618956335f5167 by Jan Vrany
RISC-V: implement ++ operators for TR::RealRegister::RegNum

This allows one using for-loop over registers without having to cast
to int and back.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: dd45ea2)
The file was modified compiler/riscv/codegen/RealRegister.hpp (diff)
Commit b194b27feaef2f0008d130c88d6919d2d7e9cc94 by Jan Vrany
RISC-V: introduce RVLinkageProperties::initialize() to initialize derived members

Linkage properties have a number of members whose values can be derived from register flags.
This commit introduces a new method initialize() that computes these values based on
_registerFlags.

Linkages are expected to fill in register flags and then call initialize() to finish properties
initialization.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: b194b27)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
Commit f3147728df136e9ec55f7eb7c726e326ffaf8f5d by Jan Vrany
RISC-V: move initialization of (system) linkage properties to its own class

This commit introduces a new class, RVSystemLinkageProperties and moves all
necessary initialization to its ctor (from RVSystemLinkage ctor).

This is a preparation to make linkage properties static.

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: f314772)
The file was modified compiler/riscv/codegen/RVSystemLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 43983d7b5fcf674baf43dfde3255198734802cdc by Jan Vrany
RISC-V: make system linkage properties static

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: 43983d7)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
Commit d9c35bdb3e379179c97a10181f94faedb18f8cd8 by Jan Vrany
RISC-V: add comment RVSystemLinkageProperties::initialize()

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: d9c35bd)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 50cfe562c4592573a78aa33bb1533db03413d24e by Annabelle Huo
Add notes on GlRegDeps

This note captures the concept of `GlRegDeps`
that Vijay explained in a meeting.

Co-authored-by: Vijay Sundaresan <vijaysun@ca.ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 50cfe56)
The file was addeddoc/compiler/il/GlRegDeps.md
Commit ebeac7b734dd6b1a2c355fd3c08e0b08de388f14 by Irwin D'Souza
Ensure consistency between resolved method and symbol wrt isInterpreted

In a relocatable compilation, if the resolved method denotes an
interpreted method, ensure that the resolved method symbol also denotes
it is interpreted.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: ebeac7b)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
Commit 90229d2044dca28bb3a57045b6c27c9d3d645af5 by Mohammad Nazmul Alam
Fix Peephole optimization for iushr,ishr

In POWER the peephole optimization for iushr, ishr uses rlwinm.
However, the rlwinm does not take into consideration of sign
extension that is required by iushr/ishr. This commit fix the case
for ishr so that the optimization is only possible for correct case.

Signed-off-by: Mohammad Nazmul Alam <mohammad.nazmul.alam@ibm.com>
(commit: 90229d2)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit 2f0a0e39f36cb2b1dae307fbc1c8314884672852 by Md. Alvee Noor
AArch64: Vector mul-div opcode inclusion

This commit adds AArch64 VFP instructions for vector multiplication
& division operations. Following data-types are covered by these
instructions-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 2f0a0e3)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit fdb9b28b5f6e13e2271fe956654d34dc556599fb by Md. Alvee Noor
AArch64: Vector mul-div implementation

This commit adds AArch64 implementations for vector multiplication
& division operations. Following data-types are covered by these
operations-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: fdb9b28)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit edecda6d45e10c2f26bfeb34caf6cf21d5069e95 by Harpreet Kaur
Separate OMR x86 linkage properties from linkage class

Signed-off-by: Harpreet Kaur <hkaur3@unb.ca>
(commit: edecda6)
The file was modified compiler/x/codegen/OMRLinkage.hpp (diff)
The file was addedcompiler/x/codegen/X86LinkageProperties.hpp
Commit d429462262a705883d687b56e9e65684eff737c8 by Henry Zongaro
Define isArrayCompTypeValueType method for Value Propagation

This change adds a virtual method and base implementation of
isArrayCompTypeValueType to OMR::ValuePropagation that can be used to
determine whether the component type of an array is definitely, might be
or is definitely not a value type.

The base implementation simply assumes any array's component type might
be a value type if value type support is enabled, and that it is
definitely not a value type otherwise.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: d429462)
The file was modified compiler/optimizer/OMRValuePropagation.hpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
Commit 39dd3d8714d6c60a7d0e1e199deab0392e35e35d by Aleksandar Micic
Restore concurrent end trigger

The trigger point of the end of final STW increment of concurrent global
GC event was mistakenly removed as part of VGC re-org, believing that
Verbose GC was the only user of. However, global GC scheduling and
compact heuristics indirectly also relied on it.

See: https://github.com/eclipse/omr/pull/5688

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: 39dd3d8)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit ca33fa8cca0749893374be0e03a74bbbe3f7e7a6 by Kazuhiro Konno
AArch64: Improve code generation for i2l-lshl sequence

This commit improves code generation for the IL sequence i2l-lshl that
often appears in offset calculation for array access, by using sbfm
instruction.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: ca33fa8)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit ab60693049749667f87c6f8d4cc1f7aa84e5ebcc by Joran Siu
Update CEL4RO31 control block function descriptor member

The latest specification of the CEL4RO31 control block
consolidates the environment and entry point members into
a single function descriptor member.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: ab60693)
The file was modified port/zos390/omrcel4ro31.h (diff)
The file was modified port/zos390/omrsl.c (diff)
Commit 4f27f79cce473279f2b5d849f75220f409a2a1bb by Amarpreet Singh
Cleanup PPCArrayCmp remnants

Remove remaining PPCArrayCmp references as it was
previously removed due to being dummied out.

Signed-off-by: Amarpreet Singh amarpreet1997@gmail.com
(commit: 4f27f79)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 920c99314597b4514f33db5c469083af79b1c244 by Amarpreet Singh
Remove gap in runtime helper table enum values
(commit: 920c993)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit 233e0f0e3c3a5dfbb510776e478d4555d8fa3b25 by Md. Alvee Noor
AArch64: Vector mul-div tril test

This commit adds test-cases for the vector multiplication & division
tril tests in VectorTest for the following vector data-types-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 233e0f0)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit 2b3ef73f0c036ff83200bd7cf832437ec5f59f37 by Md. Alvee Noor
Vector tril test comments cleanup

This commit cleans up relevant comments for the VectorTest.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 2b3ef73)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit f75db26436280bb73682de71c8ec7ee3f5504be0 by tao guan
Dummy OMROptimizer_inlines.hpp header added

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: f75db26)
The file was addedcompiler/optimizer/OMROptimizer_inlines.hpp
Commit afd29aa923f92c62d9e8a49fd4e43bf02a680563 by Amarpreet Singh
Cleanup PPCArrayCmp remnants

Remove remaining PPCArrayCmp references as it was
previously removed due to being dummied out.

Signed-off-by: Amarpreet Singh amarpreet1997@gmail.com
(commit: afd29aa)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 51cde666fb9a638b3c9bd2df7f7781d15c14528a by Aleksandar Micic
Reorg Scavenger::copy() epilog

In copy method we checked 2x if forwarding succeeded. It's needed for
Concurrent Scavenger for 2 different paths: small objects
(allowing duplicates) and large objects (disallowing duplicates).

These 2 if checks (and their associated then&else code blocks) were
serialized, but now they are nested. It makes it somewhat easier to
read, but more importantly more friendly for later code versioning
for CS and nonCS case.

A small compromise is that handling of failed forwarding path now is
duplicated at the level of source code (now at each end of those 'if's,
while it used to be only once at the very end). Still, in run time, it's
only handled once.

Signed-off-by: Aleksandar Micic amicic@ca.ibm.com
(commit: 51cde66)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
Commit 96c559abddce3b8a8e7d82dcbab557f75a9096ff by Mohammad Nazmul Alam
Fix paddi and lxvdsx for vsplatsEvaluator to have GPR register

P10 uses paadi in conjuction with lxvdsx for vsplats. The opcode
paddi requires a GPR for correct address calculation as lxvdsx
uses GPR for loading the data. The passed register for
loadfloatConstant can be of type FPR/VSX thus leading to assert
in RegisterAssigning phase. This commit ensures that paddi and
lxvdsx uses GPR for the constant data snippet address.

Fixes: openj9#12383

Signed-off-by: Mohammad Nazmul Alam <mohammad.nazmul.alam@ibm.com>
(commit: 96c559a)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 9189430bc6569a74e0c6a3705d22b4184ba51dcb by Kazuhiro Konno
Revert "AArch64: Improve code generation for i2l-lshl sequence"

This commit reverts the change in ishlEvaluator() in #5890.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 9189430)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit d673188ebe7e3dacbbf48515665c2669a7cd8b36 by Akira Saitoh
AArch64: Use correct parameter for memory barrier instructions

Use correct parameter for `dmb` instrutions.
- for shareability domain parameter, the correct one is `inner shareable domain`.
- barrier required after volatile load is an acquire barrier. A full barrier is not required.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: d673188)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 5c5e5440b04516f599935fb143555e765ced1094 by Aleksandar Micic
Check if current phase concurrent when trying to yield

When we consider yielding in Concurrent Scavenger (prematurely
terminating scanning loop, while in concurrent phase, due to external
Exclusive Access Request being raised), we can now rely on explicit flag
that tells us we are really in concurrent phase. Yielding while in STW
phases is meaningless.

Previously we checked if we were not in STW mode by checking that
exclusive access was in 'pending' state, but exclusive VM access
actually can be pending even state is already 'exclusive'. This is true
when exclusive VM access was requested by external thread. In this case,
we could incorrectly conclude we are not in concurrent mode, and never
yield.

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: 5c5e544)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified example/glue/ScavengerDelegate.hpp (diff)
Commit 2dbaf285356b6fd7c954db16865e90b976f224aa by tao guan
Optimizer_inlines.hpp header added

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 2dbaf28)
The file was addedcompiler/optimizer/Optimizer_inlines.hpp
Commit 6738cf65350bcd7ebfa811e9e249f783285f4383 by Annabelle Huo
Add notes on mainline and outofline concepts

The notes are collected from a meeting with Vijay.

[skip ci] Documentation only.

Co-Authored-By: Vijay Sundaresan <vijaysun@ca.ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 6738cf6)
The file was addeddoc/compiler/il/MainlineAndOutOfLineCode.md
Commit abd98f3a8076be8c0b0cdf47b9b440eb267a7698 by Devin Nakamura
Remove _LONG_LONG from TR_COMPILE_DEFINITIONS on z

We do not want the flag for z/OS, and on zLinux we get the flag via
OMR_PLATFORM_DEFINITIONS (see lower in the file).

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: abd98f3)
The file was modified cmake/modules/platform/arch/s390.cmake (diff)
Commit 5ef8609db6d430fbe467dcfd9cfb6124eecc5775 by Devin Nakamura
CMake: fix ddr macro processing on z/OS

Ensure that macros from limits.h have correct values on 64bit builds.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 5ef8609)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
Commit 1c1853ce39dc152d1ff7e8b1cefb3eaee08cd8e4 by tao guan
Add default constructor for SymbolReference

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 1c1853c)
The file was modified compiler/il/SymbolReference.hpp (diff)
Commit 8d093fc60df073e972aec9b1002e68fa375fd398 by Daryl Maier
Remove Signed-off-by requirement for OMR commits

The Eclipse Foundation no longer requires commits to be signed.  Modify
documentation and tooling to reflect that.  Also, clean up some of the
related wording in the CONTRIBUTING.md guide.

See https://www.eclipse.org/lists/eclipse.org-committers/msg01291.html
(commit: 8d093fc)
The file was modified CONTRIBUTING.md (diff)
The file was modified scripts/commit-msg (diff)
The file was modified doc/GitCrashCourse.md (diff)
Commit 4cfbe420ea290ed015f532833ca91c61cd03baa8 by Keith W. Campbell
Generate normal .exp files

Put the semicolons at the end of a line rather than at the beginning
of the next line.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 4cfbe42)
The file was modified cmake/modules/platform/toolcfg/gnu_exports.exp.in (diff)
Commit 92ff1798f8e50c65ff7bdeb1b36cc02fa930080c by Akira Saitoh
AArch64: Add processor feature detection to port library

Add processor feature detection using auxiliary vector as ppc/z does.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 92ff179)
The file was modified include_core/omrport.h (diff)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/CMakeLists.txt (diff)
The file was modified port/port_objects.mk (diff)
Commit 5fa80028eb23ef8ebc12b1a4ee3848e9129ca0d0 by Akira Saitoh
AArch64: Add query for supported feature of CPU

This commit adds `supportsFeature` method to `OMRCPU` class for aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 5fa8002)
The file was modified compiler/aarch64/env/OMRCPU.cpp (diff)
The file was modified compiler/aarch64/env/OMRCPU.hpp (diff)
Commit d8fc0295048820d081c8b68ef2a8bd6b4ac8b20a by Akira Saitoh
Fix typo of AARCH64 processor type enum

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: d8fc029)
The file was modified include_core/omrport.h (diff)
Commit b455eec238c0184decd6e08f4fbc72eaa1d44005 by Abdulrahman Alattas
Add AbsoluteHelperAddress Relocation for PPCSystemLinkage calls

AbsoluteHelperAddress relocation store and patch an absolute helper
address in a series of instructions. This commit uses this relocation
for calls with PPCSystemLinkage.

AbsoluteHelperAddress relocation implementation: eclipse/openj9#12008

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: b455eec)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
Commit 41c46b8cdf5a2ccea0bc29ea4db4bdf3141fdc21 by Alexey Khrabrov
Fix compiler errors when DEBUG is defined

Signed-off-by: Alexey Khrabrov <khrabrov@cs.toronto.edu>
(commit: 41c46b8)
The file was modified gc/base/standard/CompactScheme.cpp (diff)
The file was modified tools/hookgen/HookGen.cpp (diff)
Commit e8226181b2285ebe5271c31b7f7cf3572aa6c136 by Alexey Khrabrov
Remove unused global memoryAllocMonitor definition

The global memoryAllocMonitor is no longer used by the persistent
allocator in OpenJ9, hence its definition in OMR can now be removed.

Signed-off-by: Alexey Khrabrov <khrabrov@cs.toronto.edu>
(commit: e822618)
The file was modified compiler/infra/OMRMonitorTable.hpp (diff)
The file was modified compiler/infra/OMRMonitor.cpp (diff)
The file was modified compiler/env/TRPersistentMemory.cpp (diff)
Commit abf40db91efba5a8054c30b64ae5585e2a14c7e3 by Bradley Wood
Remove unused temps from x86 CodeGenerator

Closes #5423

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: abf40db)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
Commit 526e63b1d9e7472c5d444685b7bd3826b8891a19 by Henry Zongaro
Use a human readable name for the object comparison non-helper

The object comparison non-helper is not recognized by TR_Debug::getName,
so it's shown in tree listings as "unknown[#337  helper Method]".
This change has its name reported as <objectEqualityComparison>.
(commit: 526e63b)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 071549d1ccd0a645181eed5b460835f4a28ea672 by Bradley Wood
Remove deprecated references to X86 UnresolvedVirtualCallSnippets

Closes #5064

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 071549d)
The file was modified compiler/x/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/OMRMemoryReference.hpp (diff)
Commit e899aabd0c15de6269411a35469a88f03d49337e by Filip Jeremic
Deprecate isWarm parameter for data snippets

This parameter is no longer used.

Closes: #5055
(commit: e899aab)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit 42b04a6da0531dfd53aa78ab62e8f7f26f2ab4c0 by Keith W. Campbell
Add omrstr_ftime_ex()

* like omrstr_ftime(), with a flag for requesting UTC formatted time
* support '%a' format specifier
* simplify implementation for Windows
* add new tests
* clean up and remove what is now dead code

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 42b04a6)
The file was modified include_core/omrport.h (diff)
The file was modified port/common/omrstr.c (diff)
The file was modified fvtest/porttest/omrstrTest.cpp (diff)
The file was modified port/omrportpriv.h (diff)
The file was modified port/common/omrport.c (diff)
Commit 34dc1e7906440ad699da68ec32db089528e4f35f by Enson Guo
New `concurrent-start/end` for Global Marking

Introduce `concurrent-start/end` stanza pair for
Concurrent Global Marking to match with scavenging.
Concurrent-start stanza is printed in initial STW phase
as we transition away from init complete.
Concurrent-end can be printed either before
final STW (when we exhaust concurrent work) or during STW (if halted).

- New API in `MM_Collector`:
    - `notifyAcquireExclusiveVMAccess`
       to notify local collector
- New API in `MM_ConcurrentGC`:
    - `preConcurrentInitializeStatsAndReport`
       for triggering concurrent-start event
    - `postConcurrentUpdateStatsAndReport`
       for triggering concurrent-end event
    - `notifyAcquireExclusiveVMAccess`
       to recored time stamp when concurrent marking is
       halted or completed in STW
- Introduce a subclass `MM_ConcurrentMarkPhaseStats`
       of `MM_ConcurrentPhaseStatsBase`
- New fields in `MM_ConcurrentPhaseStatsBase`
    - `_concurrentCycleType`
- New API in `MM_VerboseHandlerOutput`
    - `getTagTemplate` to print with
       optional `reasonForTermination`
- New API in `MM_VerboseHandlerOutputStandard`
    - `getConcurrentTypeString`
    - `getCardCleaningReasonString`
    - `handleGlobalMarkEndNoLock`

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: 34dc1e7)
The file was modified gc/base/Collector.cpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.hpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.hpp (diff)
The file was modified gc/base/standard/ConcurrentGC.hpp (diff)
The file was modified gc/verbose/VerboseHandlerOutput.cpp (diff)
The file was addedgc/stats/ConcurrentMarkPhaseStats.hpp
The file was modified gc/stats/ConcurrentPhaseStatsBase.hpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff)
The file was modified gc/base/Collector.hpp (diff)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit 8b923cd06142f9f7ad1fa0b72ddf92d1333708dc by Bradley Wood
Cleanup SwitchAnalyzer by removing dead code, unused includes, formatting issues

Closes #5182

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 8b923cd)
The file was modified compiler/optimizer/SwitchAnalyzer.cpp (diff)
Commit 7be1ed46a4f7975b60ca1e25bd3e160138263566 by Devin Nakamura
CMake: update z/OS export handling

Copy the .x files to the ARCHIVE_OUTPUT_DIRECTORY to be consistent with the
CMake model. However, we continue to copy the .x files to the
RUNTIME_OUTPUT_DIRECTORY as well, to work around a bug in CMake which causes
it to look for the .x files in the wrong directory.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 7be1ed4)
The file was modified cmake/modules/platform/toolcfg/xlc.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/zos_rename_exports.cmake (diff)
Commit 0b048badfa13c1fde9acce41fe1a5f3a667b4a37 by Joran Siu
Guard a2e calls and update CELQGIPB vector offset

In omrcel4ro31, add OMR_EBCDIC guards around two a2e calls to
ensure the module and function name is EBCDIC irregardless of
whether OMR is being built with EBCDIC or ASCII convlit.

Update CELQGIPB offset from CAA fast vector array to +96.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: 0b048ba)
The file was modified port/zos390/omrcel4ro31.c (diff)
Commit 4a14a8506ee239bbc1e5d3e6b1bd0f27e1828c71 by Filip Jeremic
Deprecate findOrCreateLiteral codegen API

This API is unimplemented and calling it and using the result will
likely produce a crash. This API is used in dead code paths:

1. DFP
2. arraycmpWithPad
3. pdneg
4. vsetlem

under certain circumstances. Please see the self review in the PR which
is associated to this commit for explicit reasons as to why failing the
compilation in each case is safe and warranted.
(commit: 4a14a85)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
Commit b0f87938cb9eef63b53bcefd5e511b4f74cba079 by Devin Nakamura
CMake: fix typo in DDRSetStub.cmake.in

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: b0f8793)
The file was modified cmake/modules/ddr/DDRSetStub.cmake.in (diff)
Commit fc2bff7c9660f026048fbd3390f3b14f3ddb9ea1 by Joran Siu
Add omrsl cel4ro31 testcase

Add an omrport shared library test to load 31-bit libraries
from 64-bit and query a function via the CEL4RO31 interface on zOS.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
Co-authored-by: Babneet Singh <sbabneet@ca.ibm.com>
(commit: fc2bff7)
The file was addedfvtest/porttest/sltestlib31/sltest.cpp
The file was modified fvtest/porttest/omrslTest.cpp (diff)
The file was addedfvtest/porttest/sltestlib31/sltestlib31.exportlist
The file was modified fvtest/porttest/CMakeLists.txt (diff)
Commit e8c051644b87fedc358e6e8bbbd36e099d6bbfa1 by Nazim Bhuiyan
Add j9VMThreadFloatTemp1Symbol

This symbol represents the floatTemp1 field in j9vmthread.
It will provide another mechanism for the compiler to insert
temporary information at run-time that the VM can use, similar
to how tempSlot is used. While the name suggests this field
would contain floats, other data types could also be stored.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: e8c0516)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit d2b784114249e825590d1b7cc4349cf475dfe92c by Daryl Maier
Remove deprecated TR::MergeNew IL opcode

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: d2b7841)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/LocalDeadStoreElimination.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/LocalReordering.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/DeadTreesElimination.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
Commit eb465c4721c4e6a32c36e9ab4cffe20e31c24019 by Daryl Maier
Remove unused trigonometry opcodes

There are no known producers or consumers of these opcodes and no
functional implementation is available either.

* `TR::dcos`
* `TR::dsin`
* `TR::dtan`
* `TR::dcosh`
* `TR::dsinh`
* `TR::dtanh`
* `TR::dacos`
* `TR::dasin`
* `TR::datan`
* `TR::datan2`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: eb465c4)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
Commit e0605abe243d4c207480f24e2ed97171d129e009 by Daryl Maier
Remove unused TR::log/TR::vdlog IL opcodes

There are no known producers or consumers of these opcodes and no
functional implementation is available either.

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: e0605ab)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
Commit 52b1c650e74bc88e48c0cd194ae118a7956bb565 by Daryl Maier
Remove unused exp family IL opcodes

There are no known producers or consumers of these opcodes and no
functional implementation is available either.

* `TR::dexp`
* `TR::fexp`
* `TR::bexp`
* `TR::sexp`
* `TR::cexp`
* `TR::buexp`
* `TR::iuexp`
* `TR::luexp`
* `TR::fuexp`
* `TR::duexp`
* `TR::iexp`
* `TR::lexp`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 52b1c65)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/p/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHelpers.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHelpers.cpp (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 708cf0121c5410784dbbcd2d1ecfcc2e92cec6be by Daryl Maier
Remove unused IL opcodes

There are no known producers or consumers of these opcodes.

* `TR::callIf`
* `TR::trtLookup`
* `TR::dbgFence`
* `TR::Ret`
* `TR::bitOpMemND`
* `TR::getstack`
* `TR::dealloca`
* `TR::idoz`
* `TR::ibranch`
* `TR::mbranch`
* `TR::getpm`
* `TR::setpm`
* `TR::loadAutoOffset`
* `TR::trt`
* `TR::trtSimple`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 708cf01)
The file was modified compiler/p/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/z/CMakeLists.txt (diff)
The file was removedcompiler/z/codegen/TranslateEvaluator.cpp
The file was modified compiler/p/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/p/codegen/PPCDebug.cpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OrderBlocks.cpp (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/infra/OMRCfg.cpp (diff)
The file was removedcompiler/z/codegen/TranslateEvaluator.hpp
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified jitbuilder/build/files/target/z.mk (diff)
The file was modified compiler/optimizer/LocalReordering.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.hpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/optimizer/SwitchAnalyzer.cpp (diff)
The file was modified compiler/il/OMRBlock.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified fvtest/compilertest/build/files/target/z.mk (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 9b3534b27f6e8d74ae3b9f4a2450e1ea2625c8f8 by Daryl Maier
Remove unused IL opcodes

There are no known producers or consumers of these opcodes.

* `TR::ixfrs`
* `TR::lxfrs`
* `TR::fxfrs`
* `TR::dxfrs`
* `TR::fint`
* `TR::dint`
* `TR::fnint`
* `TR::dnint`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 9b3534b)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit 0ee29095030149773b988a71b4b4c42ee39eaa7c by Daryl Maier
Remove unused XuRegLoad/XuRegStore/aXuadd IL opcodes

There are no known producers or consumers of these opcodes.

* `TR::iuRegLoad`
* `TR::luRegLoad`
* `TR::iuRegStore`
* `TR::luRegStore`
* `TR::aiuadd`
* `TR::aluadd`

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 0ee2909)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 37f09358ef0b89e8d6dad4fa1eb20c81cb62aec3 by Daryl Maier
Remove unused TR::arraycmpWithPad IL opcode

Remove evaluator stubs and fold dead code.

Issue: #5914

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 37f0935)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/S390Evaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 265f871a70c16841b659264b852a947940ab0354 by Filip Jeremic
Deprecate a set of DFP recognized methods

The following recognized methods have been deprecated:

- java_math_BigDecimal_DFPIntConstructor
- java_math_BigDecimal_DFPLongConstructor
- java_math_BigDecimal_DFPLongExpConstructor
- java_math_BigDecimal_DFPAdd
- java_math_BigDecimal_DFPSubtract
- java_math_BigDecimal_DFPMultiply
- java_math_BigDecimal_DFPDivide
- java_math_BigDecimal_DFPScaledAdd
- java_math_BigDecimal_DFPScaledSubtract
- java_math_BigDecimal_DFPScaledMultiply
- java_math_BigDecimal_DFPScaledDivide
- java_math_BigDecimal_DFPRound
- java_math_BigDecimal_DFPSetScale
- java_math_BigDecimal_DFPCompareTo
- java_math_BigDecimal_DFPSignificance
- java_math_BigDecimal_DFPExponent
- java_math_BigDecimal_DFPBCDDigits
- java_math_BigDecimal_DFPUnscaledValue
- java_math_BigDecimal_DFPHWAvailable
- java_math_BigDecimal_DFPUseDFP
- java_math_BigDecimal_DFPPerformHysteresis
- java_math_BigDecimal_DFPConvertPackedToDFP
- java_math_BigDecimal_DFPConvertDFPToPacked
- com_ibm_dataaccess_DecimalData_DFPUseDFP
- com_ibm_dataaccess_DecimalData_DFPConvertPackedToDFP
- com_ibm_dataaccess_DecimalData_DFPConvertDFPToPacked
- com_ibm_dataaccess_DecimalData_createZeroBigDecimal
- com_ibm_dataaccess_DecimalData_getlaside
- com_ibm_dataaccess_DecimalData_setlaside
- com_ibm_dataaccess_DecimalData_getflags
- com_ibm_dataaccess_DecimalData_setflags
- java_math_BigDecimal_DFPGetHWAvailable
- com_ibm_dataaccess_DecimalData_DFPFacilityAvailable
(commit: 265f871)
The file was modified compiler/optimizer/RedundantAsyncCheckRemoval.cpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
Commit ad3a5b2df793db8373ade1cd01a7ad3651f817ad by Filip Jeremic
Deprecate code guarded by SUPPORT_DFP
(commit: ad3a5b2)
The file was modified compiler/z/codegen/SystemLinkageLinux.cpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/il/NodeUnions.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkagezOS.cpp (diff)
The file was modified compiler/optimizer/ValueNumberInfo.cpp (diff)
Commit 9f31bc7d4c5dab0e0cc32c4f0cf920721529a321 by Filip Jeremic
Deperecate all DFP opcodes and datatypes

This commit is the mean of the change to deprecate DFP related code.
Here we remove all the opcodes and datatypes related to DFP along with
cleaning up some intertwined APIs.

The following is a list of opcodes we removed:

- dfconst
- ddconst
- deconst
- dfload
- ddload
- deload
- dfloadi
- ddloadi
- deloadi
- dfstore
- ddstore
- destore
- dfstorei
- ddstorei
- destorei
- dfreturn
- ddreturn
- dereturn
- dfcall
- ddcall
- decall
- dfcalli
- ddcalli
- decalli
- dfadd
- ddadd
- deadd
- dfsub
- ddsub
- desub
- dfmul
- ddmul
- demul
- dfdiv
- dddiv
- dediv
- dfrem
- ddrem
- derem
- dfneg
- ddneg
- deneg
- dfabs
- ddabs
- deabs
- dfshl
- dfshr
- ddshl
- ddshr
- deshl
- deshr
- dfshrRounded
- ddshrRounded
- deshrRounded
- dfSetNegative
- ddSetNegative
- deSetNegative
- dfModifyPrecision
- ddModifyPrecision
- deModifyPrecision
- i2df
- iu2df
- l2df
- lu2df
- f2df
- d2df
- dd2df
- de2df
- b2df
- bu2df
- s2df
- su2df
- df2i
- df2iu
- df2l
- df2lu
- df2f
- df2d
- df2dd
- df2de
- df2b
- df2bu
- df2s
- df2c
- i2dd
- iu2dd
- l2dd
- lu2dd
- f2dd
- d2dd
- de2dd
- b2dd
- bu2dd
- s2dd
- su2dd
- dd2i
- dd2iu
- dd2l
- dd2lu
- dd2f
- dd2d
- dd2de
- dd2b
- dd2bu
- dd2s
- dd2c
- i2de
- iu2de
- l2de
- lu2de
- f2de
- d2de
- b2de
- bu2de
- s2de
- su2de
- de2i
- de2iu
- de2l
- de2lu
- de2f
- de2d
- de2b
- de2bu
- de2s
- de2c
- ifdfcmpeq
- ifdfcmpne
- ifdfcmplt
- ifdfcmpge
- ifdfcmpgt
- ifdfcmple
- ifdfcmpequ
- ifdfcmpneu
- ifdfcmpltu
- ifdfcmpgeu
- ifdfcmpgtu
- ifdfcmpleu
- dfcmpeq
- dfcmpne
- dfcmplt
- dfcmpge
- dfcmpgt
- dfcmple
- dfcmpequ
- dfcmpneu
- dfcmpltu
- dfcmpgeu
- dfcmpgtu
- dfcmpleu
- ifddcmpeq
- ifddcmpne
- ifddcmplt
- ifddcmpge
- ifddcmpgt
- ifddcmple
- ifddcmpequ
- ifddcmpneu
- ifddcmpltu
- ifddcmpgeu
- ifddcmpgtu
- ifddcmpleu
- ddcmpeq
- ddcmpne
- ddcmplt
- ddcmpge
- ddcmpgt
- ddcmple
- ddcmpequ
- ddcmpneu
- ddcmpltu
- ddcmpgeu
- ddcmpgtu
- ddcmpleu
- ifdecmpeq
- ifdecmpne
- ifdecmplt
- ifdecmpge
- ifdecmpgt
- ifdecmple
- ifdecmpequ
- ifdecmpneu
- ifdecmpltu
- ifdecmpgeu
- ifdecmpgtu
- ifdecmpleu
- decmpeq
- decmpne
- decmplt
- decmpge
- decmpgt
- decmple
- decmpequ
- decmpneu
- decmpltu
- decmpgeu
- decmpgtu
- decmpleu
- dfRegLoad
- ddRegLoad
- deRegLoad
- dfRegStore
- ddRegStore
- deRegStore
- dfselect
- ddselect
- deselect
- dfexp
- ddexp
- deexp
- dfnint
- ddnint
- denint
- dfsqrt
- ddsqrt
- desqrt
- dfcos
- ddcos
- decos
- dfsin
- ddsin
- desin
- dftan
- ddtan
- detan
- dfcosh
- ddcosh
- decosh
- dfsinh
- ddsinh
- desinh
- dftanh
- ddtanh
- detanh
- dfacos
- ddacos
- deacos
- dfasin
- ddasin
- deasin
- dfatan
- ddatan
- deatan
- dfatan2
- ddatan2
- deatan2
- dflog
- ddlog
- delog
- dffloor
- ddfloor
- defloor
- dfceil
- ddceil
- deceil
- dfmax
- ddmax
- demax
- dfmin
- ddmin
- demin
- dfInsExp
- ddInsExp
- deInsExp
- ddclean
- declean
- zd2df
- df2zd
- zd2dd
- dd2zd
- zd2de
- de2zd
- zd2dfAbs
- zd2ddAbs
- zd2deAbs
- df2zdSetSign
- dd2zdSetSign
- de2zdSetSign
- df2zdClean
- dd2zdClean
- de2zdClean
- pd2df
- pd2dfAbs
- df2pd
- df2pdSetSign
- df2pdClean
- pd2dd
- pd2ddAbs
- dd2pd
- dd2pdSetSign
- dd2pdClean
- pd2de
- pd2deAbs
- de2pd
- de2pdSetSign
- de2pdClean

The following is a list of data types we removed:

- DecimalFloat
- DecimalDouble
- DecimalLongDouble
(commit: 9f31bc7)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkagezOS.cpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/optimizer/ValueNumberInfo.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkageLinux.cpp (diff)
The file was modified compiler/optimizer/GlobalRegisterAllocator.cpp (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
Commit 02c7abededfd16875f7d4b58b513f68537d01045 by Filip Jeremic
Deprecate DFP related code in Z codegen
(commit: 02c7abe)
The file was modified compiler/z/codegen/OMRMachine.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
Commit 7780a2b40f663fa999f9a97ed7bc7ed0064106c9 by Filip Jeremic
Deprecate DFP related options

The following options are deprecated:

- TR_DisableDFP
- TR_DisableHysteresis
- TR_DisableZonedToDFPReduction
- TR_DisableArch11PackedToDFP

And all the resulting dead code is removed.
(commit: 7780a2b)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 8dc482aa72ddba444869c0e991fd952ff5b0465f by Akira Saitoh
AArch64: Implement atomic add and swap codegen support

Add support for inlining the atomic intrinsics on aarch64.
- atomicAddSymbol
- atomicFetchAndAddSymbol
- atomicSwapSymbol

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 8dc482a)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 323d32a107023fc10a05eb5b5df713d50980b822 by Devin Nakamura
CMake: Set LIBPATH for ddr on z/OS

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 323d32a)
The file was modified cmake/modules/OmrDDRSupport.cmake (diff)
Commit 141c34e574785511a5f41343612bbe227d636fd9 by Tobi Ajila
Enable omrthread_get_stack_range on AIX

Signed-off-by: Tobi Ajila <atobia@ca.ibm.com>
(commit: 141c34e)
The file was modified thread/common/omrthreadinspect.c (diff)
Commit 576745eea6fd716d10d8cdd8136263e0def146f4 by Daryl Maier
Disable x87 floating point for 32-bit code generation

The minimum target processor level for OMR code generation is Pentium 4,
which has support for SSE2.  All modern operating systems are assumed
to support preserving the SSE state.  Disable x87 code generation in
preparation for removal.

Issue: #946

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 576745e)
The file was modified compiler/x/env/OMRCPU.hpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
Commit 89c1ba32d19a0c85a51acac84c99396e10a6a068 by Filip Jeremic
Deprecate miscellaneous DFP APIs
(commit: 89c1ba3)
The file was modified compiler/compile/OMRMethod.hpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/il/NodeUnions.hpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/optimizer/GlobalRegisterAllocator.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkageLinux.cpp (diff)
The file was modified compiler/z/codegen/OMRMachine.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/optimizer/ValueNumberInfo.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkagezOS.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/compile/OMRMethod.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
Commit ef9fa86a1a6214da8e6e0574ae037269fc41846b by Annabelle Huo
Deprecate blockIndex in aarch64 and arm

Related to: #5293

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: ef9fa86)
The file was modified compiler/aarch64/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstruction.cpp (diff)
Commit 1d89b25642439e692d4a8301ca0c01b5f9546a74 by Annabelle Huo
Deprecate blockIndex in Power

Related to: #5293

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 1d89b25)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
The file was modified compiler/p/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/p/codegen/OMRInstruction.hpp (diff)
Commit 901a96fad40e9bfb574348e928dd3b42faac0391 by Annabelle Huo
Deprecate blockIndex in riscv

Related to: #5293

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 901a96f)
The file was modified compiler/riscv/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/riscv/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
Commit 4969afa49b133f972b3a62dba2c69e458e8386b5 by Annabelle Huo
Deprecate blockIndex in Z

Related to: #5293

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 4969afa)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 425504c91aece94fe81006a9c1047fd54079e1fe by Annabelle Huo
Deprecate blockIndex in codegen

Related to: #5293

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 425504c)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
Commit 2f617f66345699b3ab099ebc308bd35ef66b1fe3 by Filip Jeremic
Deprecate TR_DisableOOL option

This option is inconsistently used throughout the codebase. It was
originally introduced when OOL code sequences were first implemented as
a fallback path due to register allocation issues.

We have been using OOL seuqneces for almost a decade now and in some
places we don't even have a guard or fallback path against using OOL,
so enabling this option is not safe. Because of these reasons it is
best to just remove it.
(commit: 2f617f6)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/p/codegen/OMRMachine.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
Commit af6aafcc0eb2df718bb8cb07b6cb7e5ce60ff315 by Kazuhiro Konno
AArch64: Enable byteswap

This commit enables byteswap on AArch64.
Evaluators for sbyteswap/ibyteswap/lbyteswap are already implemented.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: af6aafc)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit 03905d340e70e72dd1c91acc45dd06949c47c9dc by Dhruv Chopra
Update getProcessorName routines

This commit cleans up and simplifies usage of the
getProcessorName routines in z/codegen's implementation
of OMRCPU.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 03905d3)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/z/env/OMRCPU.hpp (diff)
The file was modified compiler/z/env/OMRCPU.cpp (diff)
Commit e1139d5bd640c89c8371f586210713c0f612034d by Tobi Ajila
Fix omrthread_get_stack_range behaviour on AIX

On AIX stack start means where sp begins not the low memory.
This is the opposite of how it is on linux and how this API is
intended to be used.

Signed-off-by: Tobi Ajila <atobia@ca.ibm.com>
(commit: e1139d5)
The file was modified thread/common/omrthreadinspect.c (diff)
Commit a2c7728ef2a12a98764d944c7d1cf032ad975d86 by Filip Jeremic
Deprecate dead APIs used in doRegisterAssignment

The APIs for counting various statistics has been disabled by default
since it is guarded by the `DEBUG` build time flag which we don't build
with. This code is dead. Once we are further along unifying the register
allocator across codegens we can come back and re-introduce these stats
in a cross-platfrom way.
(commit: a2c7728)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit 3d2a47c8e65d0b434af3e5961e2a135be0451675 by Filip Jeremic
Deprecate hasBeenVisited block API

This API is not used anywhere.
(commit: 3d2a47c)
The file was modified compiler/il/OMRBlock.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifier.cpp (diff)
Commit 24a5774523557eb8e6474ab2c17b63e52d7eb382 by Filip Jeremic
Remove isOutOfLineColdPath guards from doRegisterAssignment

Tracing of register allocation was previously guarded with the
`isOutOfLineColdPath` path. However this is unnecessary since the start
of the register allocation never begins in an OOL path.
(commit: 24a5774)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit 739caaca81f6647cbfed0e875eb463a12e2a54f8 by Filip Jeremic
Migrate TBEGIN register allocator code to S390SILInstruction

We override the `assignRegisters` API and migrate the code related
to register allocation of `TBEGIN` and `TBEGINC` instructions to this
overloaded virtual API. This further cleans up the register allocation
code.
(commit: 739caac)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit 8c45dc1e11b34037000c09571e03a08dff43789c by Filip Jeremic
Migrate DCB register allocation code to S390DebugCounterBumpInstruction

The code which looks for a free real register to associate with the DCB
instruction can be migrated to the overloaded `assignRegisters` vritual
API.
(commit: 8c45dc1)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
Commit 15067085b0969bcad957a9ad14df837af3147f2c by Filip Jeremic
Migrate handleLoadWithRegRanges to OMRInstruction.cpp

We call this API at the end of `assignRegisters` instead of in
`doRegisterAssignment` which eliminates a cross-platform
incompatibility.
(commit: 1506708)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit decbc18ea896960bf58d1de6813474b9d4c59ba0 by Filip Jeremic
Migrate removeGhostRegistersFromGCMaps to ARMConditionalBranchInstruction

Similarly to the Z codegen we migrate this register allocation work
directly into `assignRegisters` overloaded virtual API.
(commit: decbc18)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
Commit 6ed62c28cbfd35c34484f965e1ec23505bd8af2b by Filip Jeremic
Unify doRegisterAssignment on all platforms except x86

Now that we have gotten `doRegisterAssignment` to look exactly the same
on several platforms we can deprecte the platform specific versions.
Unfortunately on x86 we seem to be doing something completely different
from all the other platforms, so in general tackling register allocation
on x86 will need to be done separately.
(commit: 6ed62c2)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit 7d3ca8f0cdefb74d2c1278251e03968beb713d80 by Filip Jeremic
Avoid zeroing out spilled register lists for OOL

This fixes a tricky bug which is detailed in #5977. See the
aforementioned issue for a full explanation.
(commit: 7d3ca8f)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
Commit da34f9740c5c63f355b4040bcbb90b56719b99be by Dhruv Chopra
Add getProcessorName to other codegens

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: da34f97)
The file was modified compiler/z/env/OMRCPU.hpp (diff)
The file was modified compiler/aarch64/env/OMRCPU.hpp (diff)
The file was modified compiler/x/env/OMRCPU.hpp (diff)
The file was modified compiler/aarch64/env/OMRCPU.cpp (diff)
The file was modified compiler/p/env/OMRCPU.hpp (diff)
The file was modified compiler/p/env/OMRCPU.cpp (diff)
The file was modified compiler/x/env/OMRCPU.cpp (diff)
The file was modified compiler/arm/env/OMRCPU.hpp (diff)
The file was modified compiler/env/OMRCPU.hpp (diff)
Commit 1a3d24c7b80a80faab17434ca56d9f0eb9a088f0 by Abdulrahman Alattas
Define __EXTABI__ for Port library compilation on AIX64

With enabling vector code generation for Project Panama, AIX systems
need to define __EXTABI__ for full Vector ABI support. This is
required for the signal handling code in the port library.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 1a3d24c)
The file was modified port/CMakeLists.txt (diff)
Commit abc94cfc6692fd14bf39ae47afc14fbc10785199 by Devin Nakamura
CMake: Update handling of a2e/omr_ascii

- Move include folders from platform includes to omr_ascii since they
aren't required when doing an EBCDIC build

- Make omr_port_obj inherit compile options from omr_base so releveant
a2e flags get applied if required.

- Update misc components to properly support EBCDIC builds.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: abc94cf)
The file was modified util/CMakeLists.txt (diff)
The file was modified util/a2e/CMakeLists.txt (diff)
The file was modified fvtest/algotest/CMakeLists.txt (diff)
The file was modified fvtest/threadtest/CMakeLists.txt (diff)
The file was modified thread/CMakeLists.txt (diff)
The file was modified fvtest/porttest/CMakeLists.txt (diff)
The file was modified fvtest/compilertriltest/CMakeLists.txt (diff)
The file was modified fvtest/threadextendedtest/CMakeLists.txt (diff)
The file was modified fvtest/utiltest/CMakeLists.txt (diff)
The file was modified fvtest/threadtest/createTestHelper.h (diff)
The file was modified fvtest/porttest/omrsignalTest.cpp (diff)
The file was modified fvtest/porttest/si.cpp (diff)
The file was modified fvtest/sigtest/CMakeLists.txt (diff)
The file was modified cmake/modules/platform/os/zos.cmake (diff)
The file was modified omrtrace/omrtracewrappers.cpp (diff)
The file was modified omrsigcompat/CMakeLists.txt (diff)
The file was modified port/CMakeLists.txt (diff)
The file was modified fvtest/gctest/CMakeLists.txt (diff)
The file was modified fvtest/porttest/testProcessHelpers.cpp (diff)
Commit d24ef7d03a1ecd3933964c09729e7ca0f9a6110d by Jonathan Oommen
Introduce New Default Scan Ordering 'None'

Introduce a new default scan ordering type 'none'.
In gencon configuration, scan ordering will be set
to hierarchical if it has not already been overidden
by an option. In balanced, scan ordering will be set to
dynamic BF if it has not already been overidden by an
option.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: d24ef7d)
The file was modified gc/base/Configuration.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
Commit 1d23350f850e6446a7b1e687cceda7a5852fcc8d by Filip Jeremic
Unify TR_*OutOfLineCodeSection::assignRegisters across codegens

This API is almost identical on all our codegens. There are very small
differences which have been `#ifdef` out. We're currently not 100% sure
that these guarded paths are needed so we will leave them in for now
and look to eventually unify the entire function as we get closer to
true codegen unification.
(commit: 1d23350)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.hpp (diff)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/S390OutOfLineCodeSection.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.hpp (diff)
The file was modified compiler/riscv/codegen/RVOutOfLineCodeSection.cpp (diff)
The file was modified compiler/p/codegen/PPCOutOfLineCodeSection.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64OutOfLineCodeSection.cpp (diff)
The file was modified compiler/codegen/OutOfLineCodeSection.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.hpp (diff)
The file was modified compiler/riscv/codegen/RVOutOfLineCodeSection.hpp (diff)
The file was modified compiler/z/codegen/S390OutOfLineCodeSection.hpp (diff)
The file was modified compiler/x/codegen/OMRMachine.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
The file was modified compiler/p/codegen/PPCOutOfLineCodeSection.hpp (diff)
The file was modified compiler/z/codegen/OMRMachine.hpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.cpp (diff)
The file was modified compiler/p/codegen/OMRMachine.cpp (diff)
The file was modified compiler/p/codegen/OMRMachine.hpp (diff)
The file was modified compiler/riscv/codegen/OMRMachine.hpp (diff)
The file was modified compiler/codegen/OutOfLineCodeSection.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64OutOfLineCodeSection.hpp (diff)
Commit 20d67342fab14460906a6d06683864c534d9106c by Filip Jeremic
Deprecate TR_OptimizeForSpace

This option is not set anywhere and there is no option flag present
which can enable this option. Therefore the code guarded by it is
dead.
(commit: 20d6734)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/PPCSystemLinkage.cpp (diff)
Commit 5681311d28a4ae7449580360e9b72c6255dcf078 by Filip Jeremic
Deprecate unsigned equality compare IL
(commit: 5681311)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/LoopReducer.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRIL.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/LoopReducer.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/il/OMRIL.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
Commit b977b6130478f5328bd65d724c3181e47c080a08 by Filip Jeremic
Deprecate unsigned add/subtract IL
(commit: b977b61)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified doc/compiler/il/ExtendingTrees.md (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
Commit 9a7b9ee56804d437b05816c006995dd07211dab0 by Filip Jeremic
Deprecate unsigned shift logical IL
(commit: 9a7b9ee)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
Commit 5459b3f31c19104d717bea203e44b5c47ea87fae by Filip Jeremic
Deprecate isNotDeprecatedUnsigned

Now that all unsigned IL slated for deprecation has been removed we can
safely remove this API as well.
(commit: 5459b3f)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
Commit 387ae3ff0bd98e10f22ec11faa542adf47e7e60b by Filip Jeremic
Fix -Wcomment

```
warning: '/*' within block comment [-Wcomment]
```
(commit: 387ae3f)
The file was modified compiler/optimizer/LoopVersioner.hpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 39ba2e1c417699fe655e563193ca9b44d1eae8de by Filip Jeremic
Fix -Wnull-arithmetic

```
warning: comparison between NULL and non-pointer ('int' and NULL) [-Wnull-arithmetic]
```
(commit: 39ba2e1)
The file was modified compiler/optimizer/Structure.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 4ba2ff8f2780e51baa850088051aea94bea35c51 by Filip Jeremic
Fix -Wformat

```
warning: format specifies type 'unsigned long' but the argument has type 'chunk_t' (aka 'unsigned long long') [-Wformat]
warning: format specifies type 'unsigned long' but the argument has type 'uint64_t' (aka 'unsigned long long') [-Wformat]
```
(commit: 4ba2ff8)
The file was modified compiler/infra/BitVector.cpp (diff)
The file was modified compiler/infra/BitVector.hpp (diff)
The file was modified compiler/optimizer/DebuggingCounters.cpp (diff)
Commit 36f92781c8731ab689c47f8985ff1d15111f9f7a by Filip Jeremic
Enable warnings as errors in compiler component on OSX

The commits have addressed all warnings on an OSX build, so to prevent
new warnings from being introduced we enable warnings as errors only on
this platform. Future platforms will follow.
(commit: 36f9278)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
Commit 0d7fc8c369754a37ecbc9258c40b30cf6fa89bf6 by Md. Alvee Noor
AArch64: Vector bitwise AND operation

This commit adds AArch64 implementation for vector bitwise AND
operation. This implementation is for the following data type-
- VectorInt8

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 0d7fc8c)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
Commit 7c65f12b5378d48d5a4463ebc35a229cc822934e by Md. Alvee Noor
AArch64: Vector bitwise OR operation

This commit adds AArch64 implementation for vector bitwise OR
operation. This implementation is for the following data type-
- VectorInt8

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 7c65f12)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit 9e26ef34eb2fbb45176df634b4673dea9b1173cb by Md. Alvee Noor
AArch64: Vector bitwise Exclusive OR operation

This commit adds AArch64 implementation for vector bitwise Exclusive OR
operation. This implementation is for the following data type-
- VectorInt8

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 9e26ef3)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 56b4e2930e0e4ed849f464c180cf992f8e5af148 by Md. Alvee Noor
AArch64: Vector Negate operation

This commit adds AArch64 implementation for vector Negate
operation. This implementation is for the following data types-
- VectorInt8
- VectorInt16
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 56b4e29)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit 236a9b40dd3bc01e1fa56d9f47bc40290d0d8df5 by Md. Alvee Noor
AArch64: Vector bitwise NOT operation

This commit adds AArch64 implementation for vector bitwise NOT
operation. This implementation is for the following data type-
- VectorInt8

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 236a9b4)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit 0a66a61fba854cf86de76f7c7606ee53555f0d03 by Devin Nakamura
CMake: apply omr_base flags to omrutil_obj

This ensures that omrutil_obj is compiled with required a2e flags.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 0a66a61)
The file was modified util/omrutil/CMakeLists.txt (diff)
Commit 008aa073661e8c8d27f05488897a86c39dd940af by Devin Nakamura
CMake: Fix handling of ddr scanner

- Enable support for z/OS
- Don't compile DwarfFunctions on linux (matches behaviour of makefiles)

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 008aa07)
The file was modified cmake/modules/FindLibElf.cmake (diff)
The file was modified ddr/lib/ddr-scanner/CMakeLists.txt (diff)
The file was modified cmake/modules/platform/os/zos.cmake (diff)
The file was modified cmake/modules/FindLibDwarf.cmake (diff)
Commit 140c336b94a57354ef158dff12929621e7418791 by Filip Jeremic
Disable -Winvalid-offsetof in FEBase.cpp

See #1662 for some further details. This will not be easy to solve
becalse it is not straightforward to covert `TR::JitConfig` to a POD
so we can use `offsetof`. This will hopefully be solved via the options
framework overhaul, so fixing this warning properly is not worth the
effort at the moment. Instead we locally disable this warning around
the problematic area.
(commit: 140c336)
The file was modified compiler/env/FEBase.cpp (diff)
Commit 0ebad75930cae8a023447fac9d6b5d581028117a by Md. Alvee Noor
Update vnot IL Opcode Properties

This commit corrects the IL Opcode properties of vnot so that it will
be of the same type as the node's children.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 0ebad75)
The file was modified compiler/il/OMROpcodes.enum (diff)
Commit ba13223bf8192ae33e8fc8e44fbd9ae0e0c60130 by Filip Jeremic
Fix -Wlogical-op-parentheses

```
warning: '&&' within '||' [-Wlogical-op-parentheses]
```
(commit: ba13223)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/il/OMRBlock.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 76e5e03b381a0583ed397a79270afba57931bb60 by Tobi Ajila
Fix omrthread_get_stack_range on Mac OSX

On Mac OSX stack start means where sp begins not the low memory.
This is the opposite of how it is on linux and how this API is
intended to be used.

Signed-off-by: Tobi Ajila <atobia@ca.ibm.com>
(commit: 76e5e03)
The file was modified thread/common/omrthreadinspect.c (diff)
Commit 57b4dca5d6e64b8924dd40223f0981fe03cf7fc8 by Akira Saitoh
AArch64: Add atomic operation instructions introduced by FEAT_LSE

This commit adds atomic operation instructions introduced by FEAT_LSE.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 57b4dca)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit b45c2455483b7d16c24b1e8242dc9c8f9cea49d5 by Akira Saitoh
AArch64: Use atomic operation instructions for atomic method symbols

Use atomic operation instructions for calls for atomic method symbols
if FEAT_LSE is available on target CPU.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: b45c245)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit e38eed9cb058fb924c626f13c871e3a8288776cd by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on Z

We migrate all the code from the Z `TR_S390RegisterDependencyGroup` into
an extensible `RegisterDependencyGroup` class. Then we create an
extension of this class in the Z codegen to implement some codegen
specific APIs.
(commit: e38eed9)
The file was modified compiler/z/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/z/codegen/S390Debug.cpp (diff)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
The file was modified compiler/z/codegen/OMRRegister.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/z/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
Commit ec7638ca1aae63971f69dfe0043c9a9bf1ad8150 by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on Power

Repeat the exercise from Z on Power.
(commit: ec7638c)
The file was modified compiler/p/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/p/codegen/RegisterDependency.hpp (diff)
Commit 02edfb977de28045749729aecd9994aa8cf13525 by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on x86

Repeat the exercise from Z on x86.
(commit: 02edfb9)
The file was modified compiler/x/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependencyStruct.hpp (diff)
Commit b45d152e1754914019906e416af08e6c42b442e4 by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on AArch64

Repeat the exercise from Z on AArch64.
(commit: b45d152)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/RegisterDependency.hpp (diff)
Commit 85b7630f289ce424086b5f478a222f3806ad11fd by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on ARM

Repeat the exercise from Z on ARM.
(commit: 85b7630)
The file was modified compiler/arm/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
Commit 1923beb296242bd34526405902931b07dc5e9988 by Filip Jeremic
Convert RegisterDependencyGroup to an extensible class on RISC-V

Repeat the exercise from Z on RISC-V.
(commit: 1923beb)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/riscv/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.cpp (diff)
Commit a5bca79402984b085cefd29394ac93a76b27466e by Filip Jeremic
Simplify concrete definition of RegisterDependencyGroup
(commit: a5bca79)
The file was modified compiler/z/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/p/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/arm/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/riscv/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/aarch64/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/RegisterDependency.hpp (diff)
Commit 847e05addc4e65d83537391fa4da045fe0b6d6cb by Filip Jeremic
Add OMR_EXTENSIBLE to RegisterDependencyGroup in each codegen
(commit: 847e05a)
The file was modified compiler/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/aarch64/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/p/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/riscv/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/arm/codegen/RegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.hpp (diff)
Commit 896d27b318c12e5c7b8eacb92b4a8f297f0842cc by Filip Jeremic
Implement and use self() for RegisterDependencyGroup
(commit: 896d27b)
The file was modified compiler/codegen/CMakeLists.txt (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
The file was modified fvtest/compilertest/build/files/common.mk (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was addedcompiler/codegen/OMRRegisterDependency.cpp
The file was modified jitbuilder/build/files/common.mk (diff)
Commit b27da20792e8da6bbec89dbb8f520a97b344c8e4 by Lin Hu
Prepare replacing MemoryPoolBumpPointer with
MemoryPoolAddressOrderedList

In order to reuse fragmented free memory in balanced GC, we need to
use MemoryPoolAddressOrderedList instead of MemoryPoolBumpPointer to
manage free memory. update related code for preparing the replacement.

- new virtual method addFreeMemoryPostProcess for the extra process
after new free memory is added in freelist.

- support incremental card alignment for free memory list if it is
needed.

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: b27da20)
The file was modified gc/base/MemoryPoolAddressOrderedList.hpp (diff)
The file was modified gc/base/CycleState.hpp (diff)
The file was modified gc/base/SweepPoolManagerAddressOrderedListBase.cpp (diff)
The file was modified gc/base/j9mm.tdf (diff)
The file was modified gc/base/EnvironmentBase.cpp (diff)
The file was modified gc/base/Math.hpp (diff)
The file was modified gc/base/MemoryPoolAddressOrderedList.cpp (diff)
The file was modified gc/base/MemoryPoolAddressOrderedListBase.hpp (diff)
The file was modified gc/base/ObjectHeapBufferedIterator.cpp (diff)
The file was modified gc/base/HeapRegionDescriptor.hpp (diff)
The file was modified gc/base/SweepPoolManagerAddressOrderedListBase.hpp (diff)
The file was modified gc/base/ObjectHeapBufferedIterator.hpp (diff)
Commit a190d0b8074b488f4e4e9ca08caaa8dbe2819cbf by Daryl Maier
Remove deprecated callTheJitsArrayCopyHelper() function

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a190d0b)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
Commit ea9c36f10760e14245dfa52bf44dd69aeb1ef452 by Daryl Maier
Remove unused canTransformArrayCopyCallForSmall()

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ea9c36f)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.hpp (diff)
Commit f72bfa7b5ffdbdc01e316041ffaf21596643a816 by Nazim Bhuiyan
Update TR_ResolvedMethod to obtain the number of ROM method args

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: f72bfa7)
The file was modified compiler/compile/ResolvedMethod.hpp (diff)
The file was modified compiler/compile/ResolvedMethod.cpp (diff)
Commit 77bfee0ddc8ec270597b38c3d6ff1ae7614888a6 by Daryl Maier
Remove deprecated TR_AVLTree from ValuePropagation

The code has been inactive for more than 18 years.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 77bfee0)
The file was modified compiler/optimizer/OMRValuePropagation.hpp (diff)
The file was removedcompiler/infra/AVLTree.hpp
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
Commit 9d8c4a27e0b2b7820b777bf2f5e1ffdc4fd0bf6a by Md. Alvee Noor
Vector bitwise Tril tests

This commit adds Tril test-cases for the vector bitwise operations in
VectorTest. Following operations are covered-
- Vector And
- Vector Or
- Vector Exclusive Or
- Vector Negation
- Vector Not

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 9d8c4a2)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
Commit a08cfb80462c8bb04942259d251f64e09db60499 by Akira Saitoh
AArch64: Add ScratchRegisterDependencyConditions class

This commit adds TR_ARM64ScratchRegisterDependencyConditions class
which is a convenience class to temporarily hold register dependencies.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: a08cfb8)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
Commit 207569c67e463582142db8d3b269d88acda36f79 by Filip Jeremic
Deprecate unused pseudo-instructions on Z
(commit: 207569c)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit c6b4401e707a0dee7e5eec0a056bc38f3d104126 by Filip Jeremic
Create a cross-codegen OMRInstOpcode.enum

This is in preparation for unifying a set of pseudo-instructions such
as `label`, `ret`, etc. across codegens.
(commit: c6b4401)
The file was modified compiler/riscv/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was addedcompiler/codegen/OMRInstOpCode.enum
The file was modified compiler/aarch64/codegen/OMRInstOpCodeEnum.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeEnum.hpp (diff)
Commit f2763d7f13d42984a84b565e57a0dbbd1df725f3 by Filip Jeremic
Rename OMRInstOpcodeEnum.hpp to OMRInstOpcode.enum

This is done to be consistent with other extensible enums.
(commit: f2763d7)
The file was removedcompiler/riscv/codegen/OMRInstOpCodeEnum.hpp
The file was removedcompiler/p/codegen/OMRInstOpCodeEnum.hpp
The file was removedcompiler/aarch64/codegen/OMRInstOpCodeEnum.hpp
The file was modified compiler/codegen/OMRInstOpCode.hpp (diff)
The file was addedcompiler/z/codegen/OMRInstOpCode.enum
The file was addedcompiler/p/codegen/OMRInstOpCode.enum
The file was addedcompiler/aarch64/codegen/OMRInstOpCode.enum
The file was addedcompiler/codegen/InstOpCode.enum
The file was removedcompiler/z/codegen/OMRInstOpCodeEnum.hpp
The file was addedcompiler/riscv/codegen/OMRInstOpCode.enum
The file was removedcompiler/codegen/InstOpCodeEnum.hpp
Commit 8a1541bde89996cd1214c22e8fa9c9d2e3871243 by Filip Jeremic
Migrate assocreg to the common codegen

This pseudo-instruction is migrated to the common codegen. In addition
the Z codegen has been updated to use the new naming scheme used across
Power and AArch64 to use lowercase for these pseudo-instructions.
(commit: 8a1541b)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.hpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/z/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/p/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/S390Debug.cpp (diff)
Commit 4a20228df829964996d2e044d0fa504d043f648a by Filip Jeremic
Migrate bad to the common codegen
(commit: 4a20228)
The file was modified compiler/z/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/z/codegen/S390Evaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
The file was modified compiler/z/codegen/OMRPeephole.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OpMemToMem.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.hpp (diff)
The file was modified compiler/z/codegen/UnaryEvaluator.cpp (diff)
Commit c922bd4c6824e46b8c35071ea4c4b24515a876bf by Filip Jeremic
Migrate dd to the common codegen

We take this opportunity to deprecate `DC` instruction on Z in favor of
the cross platform `dd`.
(commit: c922bd4)
The file was modified compiler/z/codegen/SystemLinkagezOS.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
Commit 8d698eb4c110835af94a3391dcdef2d05f93d9fc by Filip Jeremic
Migrate fence to the common codegen
(commit: 8d698eb)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRPeephole.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/snippet/PPA1Snippet.cpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/S390Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit e62f3d2db45352cf11f710c945b75f811186ff16 by Filip Jeremic
Migrate label to the common codegen
(commit: e62f3d2)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/SystemLinkagezOS.cpp (diff)
The file was modified compiler/z/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.cpp (diff)
The file was modified compiler/z/codegen/S390OutOfLineCodeSection.cpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/S390Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/SystemLinkageLinux.cpp (diff)
The file was modified compiler/z/codegen/OpMemToMem.hpp (diff)
The file was modified compiler/z/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/z/codegen/S390GenerateInstructions.cpp (diff)
Commit 9c45612287ac3cda88c943dc0068197690f86f88 by Filip Jeremic
Migrate proc to the common codegen
(commit: 9c45612)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified fvtest/compilertest/z/codegen/Evaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/snippet/PPA1Snippet.cpp (diff)
The file was modified jitbuilder/z/codegen/Evaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
Commit 643471522ce1da755ecc7f68051e44db3728dce0 by Robert Kenny
Moved _ialoadUnneeded field to Z CodeGenerator

Moved all instances of the _ialoadUnneeded attribute to the Z subfolder:
- Moved "List<TR_Pair<TR::Node, int32_t> > _ialoadUnneeded;" from
   compiler/codegen/OMRCodeGenerator.hpp to z/codegen/OMRCodeGenerator.hpp

- Moved '_ialoadUnneeded(comp->trMemory()),'from
  compiler/codegen/OMRCodegenerator.cpp to z/codegen/OMRCodeGenerator.cpp

- Updated commit message to follow guidelines
(commit: 6434715)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
Commit 80a68c7c21ca4d74fcfe47db4f8e41327912fd2e by Lin Hu
Handle both AddressOrdered and BumpPointer regionType in setMarkMapValid

In order to smooth transition for replacing MemoryPoolBumpPointer
with MemoryPoolAddressOrderedList, update setMarkMapValid() to handle
both AddressOrdered and BumpPointer regionType.
Rollback the changes in ObjectHeapBufferedIterator.

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: 80a68c7)
The file was modified gc/base/HeapRegionDescriptor.hpp (diff)
The file was modified gc/base/ObjectHeapBufferedIterator.hpp (diff)
The file was modified gc/base/ObjectHeapBufferedIterator.cpp (diff)
Commit 4c6826347369528bc8e077609e60e58f294dd558 by Kevin Langman
Prevent LoopVersioner from attempting to privatize BCD type nodes

A crash would occur in decReferenceCount() after privatizing a pdLoadi
because the Z evaluator was not expecting a pdLoad Opcode. This fix
will disable privatizing all BCD type nodes.

Signed-off-by: Kevin Langman <langman@ca.ibm.com>
(commit: 4c68263)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit b0794221e489ea741d2b106dd33aa66d6a4b5993 by mpirvuca.ibm.com Pirvu
Add command line option to make inliner more aggressive

Added `enableAggressiveInlining` command line option which, under the covers,
will enable other options or set threshold values such that the Inliner is
more aggressive in inlining callees. This is done in the `jitPostProcess()`
phase, so it may override other inliner specific options, also present on
the command line.
The new option is directed at experimentation and not geared towards
production use. Moreover, the new option cannot be applied in a subset,
but only globally, to all the methods.

Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
(commit: b079422)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit debf0a85657862d1d831e09d0f32b37ffc3d2680 by Jonathan Oommen
Update Default Scan Ordering Configuration

Update scan ordering configuration for more correct configuration
of adaptiveGcCountBetweenHotFieldSort.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: debf0a8)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/Configuration.cpp (diff)
Commit c1b3520f77010baddf6bfa60481f74a38a83c8fb by Filip Jeremic
Migrate retn to the common codegen

We also rename `ret` to `retn` to avoid name clashing on backends which
define `ret` to be an actual instruction.
(commit: c1b3520)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/z/codegen/InstOpCode.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/z/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/p/codegen/PPCBinaryEncoding.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/FPTreeEvaluator.cpp (diff)
Commit 4dd0b66bc8dfcfe21c24bdf1e63e7429bc09f39b by Filip Jeremic
Migrate vgnop to the common codegen

We also rename `vgdnop` to `vgnop` to stay consistent across codegens.
(commit: 4dd0b66)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/p/codegen/PPCInstruction.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/z/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRPeephole.cpp (diff)
Commit b224aa3d87dc11b7aa4740c0b6b7523e7cd75d5b by Filip Jeremic
Fixup binaryEncodings on AArch64 and RISC-V
(commit: b224aa3)
The file was modified compiler/riscv/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
Commit f587737c1ca842d722608be2a021198d26f4d7e8 by Filip Jeremic
Make _ialoadUnneeded protected

For use in downstream projects. OpenJ9 is a consumer.
(commit: f587737)
The file was modified compiler/z/codegen/OMRCodeGenerator.hpp (diff)
Commit 3978111b178c23247e7753f6ebb8b44364fcbd12 by Amarpreet Singh
Allow 64K page size as a valid option on AIX

xlpCodeCacheTests fails on AIX because the default
code cache large page size 64K is absent in the
list of available code cache large page sizes
output by `-verbose:sizes`.

Include 64K in the list of available code cache
large page sizes for the test to parse as the
expected page size when no `-Xlp` option is
supplied and the default page size is used.

Signed-off-by: Amarpreet Singh amarpreet1997@gmail.com
(commit: 3978111)
The file was modified port/aix/omrvmem.c (diff)
Commit 439b7332372f3675a812384f0e9e9b2c48d0d1d0 by Kazuhiro Konno
AArch64: Improve code generation for i2l-lshl sequence

This commit improves code generation for the IL sequence i2l-lshl that
often appears in offset calculation for array access, by using `sbfm`
instruction.

This is a revisit of #5890.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 439b733)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit d1944d996bf5aecea75bd7da8f3cc078be1aed69 by Lin Hu
Limit Incremental Card Alignment under 64 bit system

Incremental Card Alignment is designed only for 64bit system,
the code should never run on 32/31 bit system, use OMR_ENV_DATA64
precompile define to avoiding the side affection on 32/31 bit system.


Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: d1944d9)
The file was modified gc/base/MemoryPoolAddressOrderedList.hpp (diff)
Commit 6714867e12722b030bae4d1456bd7dd770e95191 by Henry Zongaro
Replace method in VPHandlers.cpp with equivalent method in VP

isArrayCompTypeValueType was originally defined as a static function in
VPHandlers.cpp, but an equivalent virtual method that downstream
projects can override is now defined in OMR::ValuePropagation.  This
change eliminates the function in VPHandlers.cpp and has that file use
the method in ValuePropagation instead.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 6714867)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 8caf6fe2528f80ada1011850e4cbfdbdd29565d4 by Rahil Shah
Enable OSR for profiling compilations with JProfiling

In the profiling compilations that was using JIT Profiler, we had to
disable the OSR in profiling compilations as we had to duplicate the
method and size would become an issue and profiling compilations are
very short-lived. With JProfiler we do not need to duplicate the method
body and counters to collect profiling data are inserted in the code.
This commits enables OSR and sets HCR mode to osr from traditional for
profiling compilations when JProfiler is used which would allow us to
collect accurate profile of the method to be used in subsequent
compilations which by default has OSR enabled.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 8caf6fe)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
Commit 2a61988f87c14efe914b64faa71f00a176a5fb00 by Lin Hu
Reduce MemoryPoolAddressOrderedList casting in Usage

Using virtual method call backs in base class (MemoryPool) to reduce
extend class casting.
Add empty virtual methods in base class.
rename recycleHeapChunk(env,...) to recycleHeapChunkForFreeList(env,...)

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: 2a61988)
The file was modified gc/base/MemoryPoolSplitAddressOrderedListBase.cpp (diff)
The file was modified gc/base/MemoryPoolHybrid.cpp (diff)
The file was modified gc/base/j9mm.tdf (diff)
The file was modified gc/base/MemoryPoolBumpPointer.hpp (diff)
The file was modified gc/base/MemoryPoolAddressOrderedList.hpp (diff)
The file was modified gc/base/MemoryPoolAddressOrderedListBase.hpp (diff)
The file was modified gc/base/MemoryPoolSplitAddressOrderedList.cpp (diff)
The file was modified gc/base/MemoryPoolSplitAddressOrderedListBase.hpp (diff)
The file was modified gc/base/MemoryPool.hpp (diff)
Commit 982a3ae4184c7d135e2269d538e20eb24bc82038 by noreply
Revert "Allow 64K page size as a valid option on AIX"
(commit: 982a3ae)
The file was modified port/aix/omrvmem.c (diff)
Commit c57a70c7fef5eee2392a53e9f9a5d6ddd7bd01c1 by Jonathan Oommen
Refactor CopyForward to reuse fixupForwardedObject

Refactor CopyForward to be more consistent with Scavenger
by reusing existing fixupForwardedObject method from
ObjectModel. This allows for the simplification of
calculateObjectDetailsForCopy for balanced as
doesObjectNeedHash argument is no longer needed.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: c57a70c)
The file was modified example/glue/ObjectModelDelegate.hpp (diff)
The file was modified gc/base/ObjectModelBase.hpp (diff)
The file was modified example/glue/ObjectModelDelegate.cpp (diff)
Commit 3a5345ec5d6e0d24cacf61a198fdee925cf6ade7 by Filip Jeremic
Make InstOpCode an extensible class on x86

Inherit `OMR::InstOpCodeConnector` like on all other platforms. We had
to adopt the use of the common pseudo-instructions in the x86 codegen to
make this change.
(commit: 3a5345e)
The file was modified compiler/x/codegen/InstOpCode.hpp (diff)
The file was modified compiler/x/codegen/Instruction.hpp (diff)
Commit 341a6b36d37afba083b18346ae14343ce401f7d9 by Filip Jeremic
Create skeleton OMRInstOpCode files and classes

These classes will form the base of the transition from `X86OpCodes` and
`X86OpCode` to the new cross platform `TR::InstOpCode`. For now much of
the implementation is left empty as we try to slowly add functionality
from X86Ops.hpp.
(commit: 341a6b3)
The file was addedcompiler/x/codegen/OMRInstOpCode.cpp
The file was addedcompiler/x/codegen/OMRInstOpCode.enum
The file was addedcompiler/x/codegen/OMRInstOpCode.hpp
The file was addedcompiler/x/codegen/OMRInstOpCodeProperties.hpp
Commit ccd1fcce95954284e6399fc4acd2e5b094c6f8eb by Filip Jeremic
Replace includes of X86Ops.hpp with OMRInstOpCode.hpp

This is done in preparation for eliminating the former with the latter.
(commit: ccd1fcc)
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.hpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.hpp (diff)
The file was modified compiler/x/codegen/OpNames.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/x/codegen/OpBinary.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.hpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.hpp (diff)
The file was modified compiler/x/codegen/X86Evaluator.hpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/IA32LinkageUtils.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/IntegerMultiplyDecomposer.cpp (diff)
The file was modified compiler/x/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.hpp (diff)
The file was modified compiler/x/i386/codegen/IA32SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.hpp (diff)
The file was modified compiler/x/codegen/UnaryEvaluator.cpp (diff)
Commit 368355e1e391ceb317c84a3ff8685114c6d672f6 by Filip Jeremic
Temporarily inherit TR_X86OpCode from InstOpCode

This allows us to replace all uses of the former with the latter in
preparation for deprecating the former.
(commit: 368355e)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/InstOpCode.hpp (diff)
Commit 36f0e3d60601c4ec8a812c57d618d7fff4599fb0 by Filip Jeremic
Temporarily remove InstOpCode::length

We temporarily remove this API because of a naming conflict in
`TR_X86OpCode` class. To avoid having to change the name of this
function for purposes of this work we simply temporarily delete the
API in `InstOpCode` base class until we have fully migrated
`TR_X86OpCode`, at which point we can reinstate the original API.
(commit: 36f0e3d)
The file was modified compiler/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.hpp (diff)
Commit c75023f97e387242d06183f3cb8487755d4b8a5c by Filip Jeremic
Replace instantiations of TR_X86OpCode with TR::InstOpCode

Now that we have multiple inheritence properly working, we can replace
all uses of `TR_X86OpCode` with `TR::InstOpCode`.
(commit: c75023f)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/x/codegen/OpNames.cpp (diff)
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
Commit ca28401a432c2808977e497ba6f72b20e4983685 by Filip Jeremic
Deprecate TR_X86OpCode

This class can now be replaced by `OMR::X86::InstOpCode`. We simply copy
over all the APIs from the former to the latter. There is no change in
functionality following this commit.

Further we remove OpBinary.cpp and replace it with OMRInstOpCode.cpp and
we get rid of the "_inlines" file for X86Ops.
(commit: ca28401)
The file was modified compiler/x/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/x/CMakeLists.txt (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/x/codegen/X86Ops.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified fvtest/compilertest/build/files/target/x.mk (diff)
The file was removedcompiler/x/codegen/X86Ops_inlines.hpp
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified jitbuilder/build/files/target/x.mk (diff)
The file was removedcompiler/x/codegen/OpBinary.cpp
Commit 42393a0db65808177cb32ec36491b0ef6d267569 by Filip Jeremic
Inline X86Ops.hpp into OMRInstOpCode.hpp

This is in preparation for deprecating `TR_X86OpCodes` in favour of the
cross platform `TR::InstOpCode::Mnemonic` enum.
(commit: 42393a0)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was removedcompiler/x/codegen/X86Ops.hpp
Commit 54ca99bd520bc8cfd40b4ff0fe43cc577cfe2e86 by Filip Jeremic
Add common pseudo-instructions to X86Ops.ins

This is done in preparation to parse out the mnemonics from this file
and write them into OMRInstOpCode.enum so that both tables generated
via X86Ops.ins and the `Mnemonic` enum have the same lengths.
(commit: 54ca99b)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
Commit 23cc13b491aa0c70239e8d0fb0af29cbd58bf0f5 by Filip Jeremic
Alias TR_X86OpCodes with OMR::InstOpCode::Mnemonic

We also introduce a new file temporarily to make the transition easier.
This new file `#define` all the existing global scoped mnemonics to map
to their `OMR::InstOpCode::Mnemonic` equivalents. We will eventually get
rid of this file as we migrate instructions from the global scope.
(commit: 23cc13b)
The file was modified compiler/x/codegen/InstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was addedcompiler/x/codegen/OMRInstOpCode.enum.temp.defines
Commit 3c6384e2e1851fb53ae0b045eed39639965bf7e4 by Filip Jeremic
Deprecate TR_X86OpCodes in favour of TR::InstOpCode::Mnemonic
(commit: 3c6384e)
The file was modified compiler/x/codegen/OutlinedInstructions.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.hpp (diff)
The file was modified compiler/x/amd64/objectfmt/OMRJitCodeRWXObjectFormat.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/codegen/IA32LinkageUtils.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.hpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.hpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.hpp (diff)
The file was modified compiler/x/codegen/OMRMachine.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/x/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/x/codegen/Instruction.hpp (diff)
The file was modified compiler/x/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.hpp (diff)
Commit 8b051bc91cf294d87f30b97d055590a8b412c05f by Filip Jeremic
Deprecate _opcode in favour of _mnemonic

We no longer need to duplicate the field and can now use the cross-
platform field instead.
(commit: 8b051bc)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.cpp (diff)
Commit 237e32a774ceffdfdc4533e990d186117af4fc4e by Adam Brousseau
Revamp Jenkins labels to a single compile label

Related eclipse-cbi/jiro#162

Signed-off-by: Adam Brousseau <adam.brousseau88@gmail.com>
(commit: 237e32a)
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
Commit d56ec61521884f2282bb925c0e1461fb8f926588 by Keith W. Campbell
Fix construction of log file name with TR_EnablePIDExtension

* put pid and time in separate buffers so the file name can be created
  with a single call to sprintf(), which also eliminates the warning
  for strncat(buf, ".", 1)
* fix bounds checking
* fix operation order in getTimeInSeconds()
* use sizeof instead of hard-coded constants

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: d56ec61)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit f285fc7aeb7722bc68d573c06a5edc5f87d03bbd by Rahil Shah
Correct condition used to setting unneeded aloadi

On Z, during trees lowering phase, it checks if the encountered aloadi
node while walking trees appears under nopable inline guards. Conditions
used to check if we are going to generate NOP for such parent Virtual
Guard node (In which case, aloadi would not be evaluated) while marking
aloadi unneeded was incorrect and in some cases, it would mark such
aloadi unneeded even though it will generate the inline test which
eventually can cause incorrect functional behaviour.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: f285fc7)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
Commit ab74df313fdbf59d4badbc590265d90b5535b575 by Filip Jeremic
Migrate getOpCodeName and getMnemonicName from OpNames.cpp
(commit: ab74df3)
The file was removedcompiler/x/codegen/OpNames.cpp
The file was modified compiler/x/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/x/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/build/files/target/x.mk (diff)
The file was modified jitbuilder/build/files/target/x.mk (diff)
Commit 054ad1ed9053d315bc554992d33ef0690258f2d6 by Kazuhiro Konno
AArch64: Fix i2l-lshl optimization

This commit fixes an issue introduced by #6011.

The i2l-lshl optimization skips assigning a register to the i2l node.
When the i2l node has two or more references, the i2l node is evaluated
later again, and it leads to unexpected results.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 054ad1e)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit d4f24ccd4140789ad903304ba6ffa8a10493d367 by Devin Papineau
Allow inliner policy to decide whether to remove differing targets

Previously, for direct calls, targets that appear to be a different
method from the one specified by the call node's symbol reference would
always be removed.

This behaviour is still the default, but the new query allows downstream
projects to customize the conditions under which those targets are
removed, e.g. by exempting certain methods.
(commit: d4f24cc)
The file was modified compiler/optimizer/Inliner.hpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit 2852c110ab6c221b82f45fdbec46966bc92ef9cd by Kazuhiro Konno
AArch64: Implement fmax/fmin/dmax/dmin evaluators

This commit implements fmax/fmin/dmax/dmin evaluators for AArch64.

Closes: #5894

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 2852c11)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified fvtest/compilertriltest/MaxMinTest.cpp (diff)
The file was modified compiler/aarch64/codegen/FPTreeEvaluator.cpp (diff)
Commit d2996100a5a64693f6ba159878a325061fb3ef48 by Irwin D'Souza
Remove TR_DebugExt friend class

TR_DebugExt was defined in Eclipse OpenJ9. However, as it no longer
exists, there is no need for this declaration in OMR.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: d299610)
The file was modified compiler/infra/Link.hpp (diff)
The file was modified compiler/infra/Array.hpp (diff)
The file was modified compiler/env/OMRPersistentInfo.hpp (diff)
The file was modified compiler/control/OptimizationPlan.hpp (diff)
The file was modified compiler/optimizer/PreExistence.hpp (diff)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
The file was modified compiler/il/OMRTreeTop.hpp (diff)
The file was modified compiler/il/OMRRegisterMappedSymbol.hpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
The file was modified compiler/optimizer/OMROptimizer.hpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
Commit 5b33fe0d323dfb877252edb5bfe8ee6e247c7cad by Irwin D'Souza
Remove isDebugExtension

isDebugExtension was extended in TR_DebugExt to denote that the object
was not the traditional TR_Debug object. However, as TR_DebugExt no
longer exists, there is no need for this virtual method.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 5b33fe0)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
Commit aad441e68ec80c8f6b09ea20a420d0932cbc9869 by Irwin D'Souza
Update Copyrights

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: aad441e)
The file was modified compiler/infra/Array.hpp (diff)
The file was modified compiler/il/OMRTreeTop.hpp (diff)
The file was modified compiler/infra/Link.hpp (diff)
The file was modified compiler/control/OptimizationPlan.hpp (diff)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
The file was modified compiler/env/OMRPersistentInfo.hpp (diff)
The file was modified compiler/il/OMRRegisterMappedSymbol.hpp (diff)
Commit f40e11a67cfd292cdaf0b2978dcec3de30e4d0b4 by Kazuhiro Konno
AArch64: Implement fcmpg/fcmpl/dcmpg/dcmpl evaluators

This commit implements fcmpg/fcmpl/dcmpg/dcmpl evaluators for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: f40e11a)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified fvtest/compilertriltest/CompareTest.cpp (diff)
The file was modified compiler/aarch64/codegen/FPTreeEvaluator.cpp (diff)
Commit ef36ae96fc9647d0c370222afdc0cec61fe24ebd by Filip Jeremic
Standardize evaluator names on RISC-V
(commit: ef36ae9)
The file was modified compiler/riscv/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
Commit 8d986d99f84e2a21a34d1145f2ae933c404c4568 by Filip Jeremic
Standardize evaluator names on AArch64
(commit: 8d986d9)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
Commit 5c37e7152b859d823cb7a9c265a60407b05af6a6 by Filip Jeremic
Standardize evaluator names on ARM
(commit: 5c37e71)
The file was modified compiler/arm/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
Commit 2bdb7114e16a18c78b87b401683fc207e1feada0 by Filip Jeremic
Standardize evaluator names on Power
(commit: 2bdb711)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluatorTable.hpp (diff)
Commit ab0f64c0389f3f6fc2aa5f1eb4416f2cce8b6a58 by Filip Jeremic
Standardize evaluator names on x86
(commit: ab0f64c)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
Commit be0fa257a1cb1e134b49306007543b39b4fe43a6 by Filip Jeremic
Standardize evaluator names on Z
(commit: be0fa25)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluatorTable.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit f7538711a3c9f8688e8dcd99c8517c79ff23c71d by Filip Jeremic
Deprecate the TreeEvaluatorTable across codegens

Now that we have unified all evaluator names across all codegens we no
longer have the need for per-codegen tables since the names are all the
same! This means we can remove these table files.
(commit: f753871)
The file was removedcompiler/z/codegen/OMRTreeEvaluatorTable.hpp
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was removedcompiler/aarch64/codegen/OMRTreeEvaluatorTable.hpp
The file was removedcompiler/x/i386/codegen/OMRTreeEvaluatorTable.hpp
The file was removedcompiler/riscv/codegen/OMRTreeEvaluatorTable.hpp
The file was removedcompiler/p/codegen/OMRTreeEvaluatorTable.hpp
The file was removedcompiler/arm/codegen/OMRTreeEvaluatorTable.hpp
The file was removedcompiler/x/amd64/codegen/OMRTreeEvaluatorTable.hpp
Commit 00daa3e551ebd1fdbd4fe492563eb7baa85335b2 by Filip Jeremic
Deprecate unused zccAddSubEvaluator
(commit: 00daa3e)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
Commit f17e0dedc12fd31615d357d614edb5c197607fc8 by Filip Jeremic
Override x86 and Power undefined evaluators
(commit: f17e0de)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
Commit 6966969dccdb8b89e504e676485adc827a7f5018 by Filip Jeremic
Override isILOpCodeSupported on x86

Now that we have an evaluator for each and every IL opcode, we can no
longer compare against `unImpOpEvaluator` or `badILOpEvaluator` to
determine whether we have implemented an evaluator for that specific IL.

Instead we have to override this function and manually return false
for the specific set of unimplemented opcodes.
(commit: 6966969)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
Commit 30ee4456e87def047d70c0cc66bcb059e8835534 by Filip Jeremic
Override isILOpCodeSupported on RISC-V

See previous commit for explanation. Same work was performed on x86.
(commit: 30ee445)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.hpp (diff)
Commit cd284c10277ffcec9d4343342e0c47e21af8f301 by Amarpreet Singh
Allow 64K page size as a valid option on AIX

xlpCodeCacheTests fails on AIX because the default
code cache large page size 64K is absent in the
list of available code cache large page sizes
output by `-verbose:sizes`.

Include 64K in the list of available code cache
large page sizes for the test to parse as the
expected page size when no `-Xlp` option is
supplied and the default page size is used.

Signed-off-by: Amarpreet Singh amarpreet1997@gmail.com
(commit: cd284c1)
The file was modified port/aix/omrvmem.c (diff)
Commit 6d9e4dcc0548ce35901b1bf423bdec1a209d8f65 by Dmitry Ten
Add an option to buffer expensive JITServer compilations

This commit adds an option
`TR_DisableJITServerBufferedExpensiveCompilations`,
which can be enabled using
`-Xjit:disableJITServerBufferedExpensiveCompilations`
command line option.
The option is used by OpenJ9 to enable buffering of
expensive local compilations on JITServer client.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: 6d9e4dc)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 947e5e70e64291f105aba65a40d8b5eb126bdf50 by Akira Saitoh
AArch64: Add TR_ARM64jitCollapseJNIReferenceFrame to getRuntimeHelperName

This commit changes `TR_Debug::getRuntimeHelperName` to return valid name
for `TR_ARM64jitCollapseJNIReferenceFrame`.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 947e5e7)
The file was modified compiler/ras/Debug.cpp (diff)
Commit a95aba5993f6674247569977388d0dcfb7c8854b by Mohammad Nazmul Alam
Improve code generation for inlineArrayCmp on Power10

The current inlineArrayCmp has some drawbacks that affects it's
performance.
The key deficiencies are - expensive comparison opcode usage,
single byte compare loop in residue loop, many branches - etc.

This commit uses wider load by utilizing power10 instructions and
reduces the number of branches in the generated code.
If merged, this patch enables more performant inlineArrayCmp
on power10+ system.
(commit: a95aba5)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/PPCBinaryEncoding.cpp (diff)
The file was modified compiler/p/codegen/PPCOpsDefines.hpp (diff)
The file was modified fvtest/compilerunittest/p/BinaryEncoder.cpp (diff)
Commit 59dc6c1e90da5b18cecb1eea157c521aa727cf3e by Abdulrahman Alattas
Implement supportsInliningOfIsInstance on POWER

POWER CG implements instanceOfEvaluator but not supportsInliningOf-
IsInstance. This commit implement it allowing a call node to
Class.isInstance() to be changed to an instanceof node.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 59dc6c1)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.hpp (diff)
Commit 85f6038a230271bdc24771852a3371597db96a19 by Akira Saitoh
Use addAtomic for incrementing counters of OMRMemCategory

Use addAtomic for incrementing counters of OMRMemCategory instead of
spinning with compareAndSwapUDATA.
Similarly, use subtractAtomic for decrementing counters.

Because this change simply makes omrmemcategories.c to use existing
implementation of atomic add/sub in AtomicSupport.hpp and they are identical
to replaced implementation in omrmemcategories.c, this commit should introduce
no functional or performance change, but this will enable us to optimize
implementation of atomic add/sub in a single file in the future.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 85f6038)
The file was modified port/common/omrmemcategories.c (diff)
Commit 8b3021de24e449b5e276104e7f8e0ae925c38ea9 by Eman Elsabban
Print OMR options in effect into the verbose log

Options that don't have the first character of the message as "F" in the option table entry will not
be printed in "options in effect" when the option is specified.
Thus, I added 'F' to the messages of OMR options, so that the options specified would also
be printed to "options in effect" in verbose logs.

similar to the PR in openj9: #12790

Signed-off-by: Eman Elsabban <eman.elsaban1@gmail.com>
(commit: 8b3021d)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit bc31ba46c38293f3c20cb3d5854798583391fa52 by Jinghua Feng
Add a method to get maximum heap size for zOS compressedrefs mode

The heap size is determined via getUserExtendedPrivateAreaMemoryType();
Moved omriarv64.h from port/zos390 to include_core/unix/zos;
Added two constants MAXIMUM_HEAP_SIZE_RECOMMENDED_FOR_COMPRESSEDREFS &
MAXIMUM_HEAP_SIZE_RECOMMENDED_FOR_3BIT_SHIFT_COMPRESSEDREFS (moved from
OpenJ9 project)

Signed-off-by: Jason Feng <fengj@ca.ibm.com>
(commit: bc31ba4)
The file was modified port/zos390/omrvmem.c (diff)
The file was modified include_core/omrutil.h (diff)
The file was addedinclude_core/unix/zos/omriarv64.h
The file was addedinclude_core/omriarv64.h
The file was modified include_core/omrgcconsts.h (diff)
The file was removedport/zos390/omriarv64.h
The file was modified util/omrutil/j9memclr.cpp (diff)
Commit 188a8726b9d79e81616df03697e58597e1e016a7 by Irwin D'Souza
Fix formatting

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 188a872)
The file was modified compiler/ras/LimitFile.cpp (diff)
Commit 37e866c1fc29aef8e5d8a5f6f575eb6f510ee119 by Jinghua Feng
Include omriarv64.h only for ZOS 64bit

omriarv64.h is for zOS 64bit, and should not be included for zOS 31bit.

Signed-off-by: Jason Feng <fengj@ca.ibm.com>
(commit: 37e866c)
The file was modified port/zos390/omrvmem.c (diff)
Commit 29100d17d8c3a3a2fb671a6933fd4fa37dab4339 by Irwin D'Souza
Remove code guarded by TR_OrderedCompiles

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 29100d1)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit 6fbc33e8239ed2e32f66295531fd8345d5807764 by Irwin D'Souza
Delete unused sample point code

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 6fbc33e)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
Commit 3d61ebbbe610da8f7de895ac14b7dd50d0a4bb97 by Kazuhiro Konno
AArch64: Fix build break

Duplicated definitions of some evaluators cause build breaks.
This commit fixes them.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 3d61ebb)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit f590028260e3048174af7094d8490c2458dad275 by Daryl Maier
Remove vrand IL opcode

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: f590028)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit adf0f110d9705951720c350c46003e7d0f3e0751 by Daryl Maier
Remove vinc/vdec IL opcodes

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: adf0f11)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
Commit 143f75c912575c1f606f80e0e4f561057bb1d8f9 by Daryl Maier
Remove vdrem IL opcode

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 143f75c)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
Commit 54c24919107eb3d8715edfd3b4c7e2946971bdfe by Daryl Maier
Remove virem IL opcode

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 54c2491)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
Commit 4fbff9e47629bde8b2c8182ba8381f1238879478 by Daryl Maier
Remove vrem IL opcode

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4fbff9e)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 5b16c2bad0656a444a1a2ddc8bb2fd705a34276e by Daryl Maier
Remove vcom IL opcode

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 5b16c2b)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 54db05a3a59c7e553033733148dbc971bad294e7 by Daryl Maier
Remove vucmplt/vucmpgt/vucmple/vucmpge IL opcodes

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 54db05a)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
Commit 788c38c00785033d774e3f1e3dcef09781e05e80 by Daryl Maier
Remove vshl/vshr/vushr IL opcodes

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 788c38c)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
Commit 9d1ec65f76dd943c089443a268e54e0ace134029 by Daryl Maier
Remove vdmadd/vdmsub/vdnmsub IL opcodes

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 9d1ec65)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 858cf1200642a5fc60fd04d55f34b8dd9b84d8db by Daryl Maier
Remove vicmpall family IL opcodes

* vicmpalleq
* vicmpallne
* vicmpallgt
* vicmpallge
* vicmpalllt
* vicmpallle

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 858cf12)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
Commit 059711017fb4018e0f34ac342eec9269147edf23 by Daryl Maier
Remove vicmpany family IL opcodes

* vicmpanyeq
* vicmpanyne
* vicmpanygt
* vicmpanyge
* vicmpanylt
* vicmpanyle

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 0597110)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
Commit f4f0b41c140dfce75b9c8942c531bec39cc73e4c by Daryl Maier
Remove vdcmpall family IL opcodes

* vdcmpalleq
* vdcmpallne
* vdcmpallgt
* vdcmpallge
* vdcmpalllt
* vdcmpallle

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: f4f0b41)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 3535dc31f57ca18f43261f8b165efa986f9c291d by Daryl Maier
Remove vdcmpany family IL opcodes

* vdcmpanyeq
* vdcmpanyne
* vdcmpanygt
* vdcmpanyge
* vdcmpanylt
* vdcmpanyle

Issue: #6003

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 3535dc3)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierTable.enum (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/il/OMROpcodes.enum (diff)
The file was modified compiler/optimizer/ValuePropagationTable.hpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.hpp (diff)
Commit 2b66131395d9830ee1f10f5bc5146ae49164eeb6 by Devin Papineau
Remove dereferences that crash out-of-process compilations
(commit: 2b66131)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit 245fd4cff4d5618931b3811ca07d64637ef91ebc by tao guan
Remove wrapper method createJittedMethodSymbol in Compilation

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 245fd4c)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
Commit 316fe47ffa97a00d3fac3627bd3431c0db8c6f74 by Nazim Bhuiyan
Add DummyResolvedMethod flag to OMR Symbol

Includes getter/setter functions. This flag is used to identify
symbols corresponding to dummy TR_ResolvedMethod that are not
really resolved, but treated as such as the resolution mechanism
involves resolving the arguments instead. An example of that is
linkToStatic, which is a VM internal native call that is created
for unresolved invokedynamic and invokehandle bytecodes.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 316fe47)
The file was modified compiler/il/OMRSymbol_inlines.hpp (diff)
The file was modified compiler/il/OMRSymbol.hpp (diff)
Commit e4958052654a968abd0d2d54789cd389fa65dd6e by Devin Papineau
Fix iteration in redundant goto elimination

This loop expected that, for a given exitTreeTop, the next tree
exitTreeTop->getNextTreeTop() would remain fixed even if the current
block is removed from the trees. However, we shouldn't assume anything
about the next/prev pointers of trees that have been deleted, since it's
highly unclear which trees are supposed to be before/after a deleted
tree. And indeed, the removal of the current block can sometimes update
the next pointer. In particular, this happens when removing an empty
block (in the following example, block_X) with two predecessors, one of
which falls through (block_F) and one of which branches (block_B):

    BBStart <block_B>
    ...
    if... --> block_X
    BBEnd </block_B>

    ...

    BBStart <block_F>
    ... (can fall through)
    BBEnd </block_F>

    BBStart <block_X>
    BBEnd </block_X>

    BBStart <block_N>
    ...
    BBEnd </block_N>

    BBStart <block_N'>
    ...
    BBEnd </block_N'>

When removing block_X, redundant goto elimination (indirectly) calls
TR::Block::insertBlockAsFallThrough() to make block_F fall through
directly to block_N. This effectively clips out block_N's trees and then
reinserts them immediately after block_F. As a result, before block_X is
deleted, the trees are temporarily in the order shown below, where the
tree immediately following the exit of block_X is the entry of block_N',
not block_N:

    BBStart <block_F>
    ... (can fall through)
    BBEnd </block_F>

    BBStart <block_N>
    ...
    BBEnd </block_N>

    BBStart <block_X>
    BBEnd </block_X>

    BBStart <block_N'>
    ...
    BBEnd </block_N'>

The typical consequence of the mistaken assumption that the next tree
remains stable would be just that processing skips block_N and goes
directly to block_N'.

However, this assumption can cause a crash when redundant goto
elimination is requested on block_X specifically. In that case, endTree
is the entry of block_N, and because block_N is skipped, the loop
doesn't terminate properly. Eventually it runs past the last block and
tries to do treeTop->getNode() when treeTop is null.

The crash went unnoticed because the code in dead trees elimination that
requests redundant goto elimination on particular blocks was instead
mistakenly requesting a pass over the entire method.

To prevent these issues, redundant goto elimination now gets the entry
of the next block before attempting to remove the current block.
(commit: e495805)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
Commit b753913f675a80ae9d3d3598d6261a22c19c960e by Siri Sahithi Ponangi
Implementing ArrayCopyBNDCHKEvaluator() on AArch64

- This commit adds ArrayCopyBNDCHKEvaluator() and
compareIntsAndBranchForArrayCopyBNDCHK() methods.
- ArrayCopyBNDCHKEvaluator() is required for arrayCopyEvaluator()
implementation.

Signed-off-by: Siri Sahithi Ponangi <sahithi.ponangi@unb.ca>
(commit: b753913)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 848cf1ac478461cd5e010539376dee8f4df8b7f4 by Filip Jeremic
Enable warnings as errors in compiler component on Linux x86
(commit: 848cf1a)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
Commit 5ee725fdb278791e8c385ccf8f343cb7ab84f482 by Filip Jeremic
Fix C4068

```
warning C4068: unknown pragma
```
(commit: 5ee725f)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/env/OMRCPU.cpp (diff)
The file was modified compiler/env/FEBase.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenPhase.cpp (diff)
The file was modified compiler/codegen/OMRMachine.cpp (diff)
Commit eedae636e7ae79a3ace484b853f2b35a29d44f72 by Filip Jeremic
Fix C4312

```
warning C4312: 'reinterpret_cast': conversion from 'int32_t' to 'void *' of greater size
```
(commit: eedae63)
The file was modified compiler/optimizer/GeneralLoopUnroller.cpp (diff)
Commit b09bfc276bbf16bdded23e9a1dd59ad94d43627a by Filip Jeremic
Fix C4717

```
warning C4717: 'TR::assert_with_instruction_detail': recursive on all control paths, function will cause runtime stack overflow
```
(commit: b09bfc2)
The file was modified compiler/infra/Assert.cpp (diff)
Commit aa4cbb107e03857e52a9b7d9ad713c65aec5bdb9 by Filip Jeremic
Fix C4291

```
warning C4291: 'void *TR_RelocationRecord::operator new(size_t,TR_RelocationRecord *)': no matching operator delete found; memory will not be freed if initialization throws an exception
```
(commit: aa4cbb1)
The file was modified compiler/codegen/GCStackMap.hpp (diff)
The file was modified compiler/optimizer/OptimizationData.hpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
Commit 946ac17505868dcb136994f2ebeeca0d30501254 by Filip Jeremic
Fix C4351

```
warning C4351: new behavior: elements of array 'TR_PersistentMemory::_totalPersistentAllocations' will be default initialized
```
(commit: 946ac17)
The file was modified cmake/modules/platform/toolcfg/msvc.cmake (diff)
Commit ba0eb3ace553809ccf53c86623ec026347637bda by Filip Jeremic
Fix C4258

```
warning C4258: 'edge' : definition from the for loop is ignored; the definition from the enclosing scope is used
```
(commit: ba0eb3a)
The file was modified compiler/optimizer/GeneralLoopUnroller.cpp (diff)
Commit 82622ed449f04a0174df1e7b453dd1f22ccb8af1 by Filip Jeremic
Fix left shift count >= width of type

```
warning: left shift count >= width of type [enabled by default]
```
(commit: 82622ed)
The file was modified compiler/infra/IGNode.hpp (diff)
Commit e2ebd2e994be411f9cc8a2e300bcabdb33590ab2 by Filip Jeremic
Fix -Wformat=

```
warning: format ‘%lX’ expects argument of type ‘long unsigned int’, but argument 3 has type ‘intptr_t {aka int}’ [-Wformat=]
```
(commit: e2ebd2e)
The file was modified compiler/ras/CallStack.cpp (diff)
The file was modified compiler/control/CompileMethod.cpp (diff)
Commit 059bd52fa235e2b815d0e49f1a95689e7255b462 by Filip Jeremic
Fix C4065

```
warning C4065: switch statement contains 'default' but no 'case' labels
```
(commit: 059bd52)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/GeneralLoopUnroller.cpp (diff)
The file was modified compiler/il/OMRILOps.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
The file was modified compiler/il/OMRILOps.hpp (diff)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
Commit 98d46b0a6dcf7a73b5732d1e86d22c6c266593e7 by Filip Jeremic
Fix C4101

```
warning C4101: 'transTableReg' : unreferenced local variable
```
(commit: 98d46b0)
The file was modified compiler/optimizer/BackwardBitVectorAnalysis.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/optimizer/LocalDeadStoreElimination.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/optimizer/StructuralAnalysis.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified fvtest/compilertest/tests/BuilderTest.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified fvtest/compilertest/control/TestJit.cpp (diff)
The file was modified compiler/optimizer/FieldPrivatizer.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/optimizer/RedundantAsyncCheckRemoval.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified fvtest/compilertest/tests/FooBarTest.cpp (diff)
The file was modified compiler/cs2/timer.h (diff)
The file was modified compiler/optimizer/LoopReducer.cpp (diff)
The file was modified compiler/infra/OMRCfg.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
The file was modified compiler/optimizer/Structure.cpp (diff)
The file was modified jitbuilder/control/Jit.cpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
The file was modified compiler/infra/BitVector.hpp (diff)
The file was modified compiler/optimizer/CopyPropagation.cpp (diff)
The file was modified compiler/ras/CFGChecker.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/optimizer/Dominators.cpp (diff)
The file was modified compiler/optimizer/GlobalRegisterAllocator.cpp (diff)
The file was modified compiler/optimizer/OMRTransformUtil.cpp (diff)
The file was modified compiler/optimizer/GlobalAnticipatability.cpp (diff)
The file was modified fvtest/compilertest/tests/X86OpCodesTest.cpp (diff)
Commit 5cefde146101efa208e3df1af56f13f6c3e3e56d by Filip Jeremic
Fix C4267

```
warning C4267: '=' : conversion from 'size_t' to 'int32_t', possible loss of data
```
(commit: 5cefde1)
The file was modified compiler/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/optimizer/CallInfo.hpp (diff)
The file was modified compiler/x/codegen/DataSnippet.hpp (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
The file was modified compiler/env/RegionProfiler.hpp (diff)
The file was modified compiler/ilgen/OMRTypeDictionary.cpp (diff)
The file was modified compiler/optimizer/Structure.hpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifier.cpp (diff)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
The file was modified compiler/env/OMRClassEnv.cpp (diff)
The file was modified jitbuilder/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/ilgen/OMRVirtualMachineRegisterInStruct.hpp (diff)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
The file was modified compiler/optimizer/abstractinterpreter/AbsOpArray.cpp (diff)
The file was modified compiler/runtime/OMRCodeCache.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
The file was modified compiler/x/codegen/DataSnippet.cpp (diff)
The file was modified compiler/optimizer/InductionVariable.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified jitbuilder/compile/ResolvedMethod.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified jitbuilder/compile/Method.hpp (diff)
The file was modified compiler/infra/OMRCfg.cpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
The file was modified compiler/optimizer/CopyPropagation.cpp (diff)
The file was modified compiler/optimizer/OSRDefAnalysis.cpp (diff)
The file was modified compiler/cs2/sparsrbit.h (diff)
The file was modified compiler/optimizer/RematTools.hpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
The file was modified compiler/cs2/arrayof.h (diff)
The file was modified compiler/optimizer/OMRLocalCSE.cpp (diff)
The file was modified compiler/optimizer/OrderBlocks.cpp (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
The file was modified compiler/env/TRMemory.hpp (diff)
Commit 6e551ea01b0b2cca6fc260297d9a7ab88f66dc7d by Filip Jeremic
Fix C4244

```
warning C4244: 'argument' : conversion from 'intptr_t' to 'int32_t', possible loss of data
```
(commit: 6e551ea)
The file was modified compiler/optimizer/ValueNumberInfo.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/ExpressionsSimplification.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/optimizer/GeneralLoopUnroller.cpp (diff)
The file was modified compiler/env/OMRIO.cpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/optimizer/SinkStores.cpp (diff)
The file was modified compiler/runtime/OMRCodeCache.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/optimizer/StripMiner.cpp (diff)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
The file was modified compiler/optimizer/OMRCFGSimplifier.cpp (diff)
The file was modified compiler/optimizer/LoopCanonicalizer.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/codegen/CodeGenGC.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
The file was modified compiler/cs2/sparsrbit.h (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/codegen/OMRCodeGenPhase.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/ilgen/IlInjector.cpp (diff)
The file was modified compiler/x/amd64/objectfmt/OMRJitCodeRWXObjectFormat.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
The file was modified compiler/optimizer/OSRDefAnalysis.cpp (diff)
The file was modified compiler/il/OMRNode_inlines.hpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
The file was modified compiler/optimizer/InductionVariable.cpp (diff)
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/optimizer/LoopReducer.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/infra/SimpleRegex.cpp (diff)
The file was modified compiler/optimizer/TranslateTable.cpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/control/CompileMethod.cpp (diff)
The file was modified compiler/optimizer/GlobalAnticipatability.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHelpers.cpp (diff)
The file was modified compiler/optimizer/SwitchAnalyzer.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/optimizer/RedundantAsyncCheckRemoval.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/cs2/timer.h (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/ilgen/OMRBytecodeBuilder.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/cs2/bitvectr.h (diff)
The file was modified compiler/optimizer/LocalDeadStoreElimination.cpp (diff)
The file was modified compiler/infra/BitVector.hpp (diff)
The file was modified compiler/x/codegen/IA32LinkageUtils.cpp (diff)
Commit 131c4a7b82b2851dcbcbc9ede6c1195b38779fef by Filip Jeremic
Fix C4018

```
warning C4018: '&lt;' : signed/unsigned mismatch
```
(commit: 131c4a7)
The file was modified compiler/ilgen/IlInjector.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
The file was modified fvtest/compilertest/tests/injectors/OpIlInjector.hpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/codegen/OMRRegisterDependency.hpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified jitbuilder/apigen/extras/cpp/Macros.hpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.cpp (diff)
The file was modified compiler/optimizer/OSRDefAnalysis.cpp (diff)
The file was modified compiler/infra/InterferenceGraph.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/optimizer/LocalLiveRangeReducer.cpp (diff)
The file was modified compiler/infra/BitVector.hpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/optimizer/PartialRedundancy.cpp (diff)
The file was modified fvtest/compilertest/tests/OpCodesTest.hpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/codegen/StorageInfo.cpp (diff)
The file was modified compiler/codegen/CodeGenGC.cpp (diff)
The file was modified compiler/ilgen/OMRBytecodeBuilder.cpp (diff)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
The file was modified fvtest/compilertest/tests/X86OpCodesTest.cpp (diff)
The file was modified jitbuilder/apigen/cppgen.py (diff)
The file was modified compiler/codegen/CodeGenRA.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/runtime/OMRCodeCache.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
The file was modified fvtest/compilertest/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
The file was modified fvtest/compilertest/tests/OpCodesTest.cpp (diff)
The file was modified compiler/optimizer/TranslateTable.cpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
The file was modified compiler/optimizer/UseDefInfo.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified fvtest/compilertest/tests/BuilderTest.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified jitbuilder/compile/ResolvedMethod.cpp (diff)
Commit 0f3b2e645cbc2fa364cdc2c5ea6bf8eec7d4f5a1 by Filip Jeremic
Fix C4800

```
warning C4800: 'uint32_t' : forcing value to bool 'true' or 'false' (performance warning)
```
(commit: 0f3b2e6)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/infra/SimpleRegex.cpp (diff)
The file was modified compiler/cs2/bitvectr.h (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/Structure.cpp (diff)
The file was modified compiler/optimizer/InductionVariable.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/optimizer/DeadTreesElimination.cpp (diff)
The file was modified compiler/infra/OMRCfg.cpp (diff)
The file was modified compiler/infra/BitVector.hpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
The file was modified compiler/x/env/OMRCPU.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/infra/Assert.cpp (diff)
The file was modified compiler/x/codegen/HelperCallSnippet.cpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.cpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/infra/BitVector.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/optimizer/LocalAnticipatability.cpp (diff)
The file was modified compiler/optimizer/RegisterCandidate.hpp (diff)
Commit ab19e76ca422967e2aa647758b1fcef8ac5d71ad by Filip Jeremic
Fix C4099

```
warning C4099: 'OMR::PersistentAllocatorKit' : type name first seen using 'class' now seen using 'struct'
```
(commit: ab19e76)
The file was modified compiler/il/AliasSetInterface.hpp (diff)
The file was modified compiler/optimizer/Inliner.hpp (diff)
The file was modified fvtest/compilertest/runtime/TestJitConfig.hpp (diff)
The file was modified jitbuilder/runtime/JBJitConfig.hpp (diff)
The file was modified compiler/codegen/Relocation.hpp (diff)
The file was modified compiler/codegen/RegisterDependencyStruct.hpp (diff)
The file was modified compiler/env/PersistentAllocatorKit.hpp (diff)
The file was modified compiler/optimizer/CallInfo.hpp (diff)
The file was modified compiler/cs2/sparsrbit.h (diff)
The file was modified compiler/runtime/OMRCodeCacheManager.hpp (diff)
Commit d1f5435e22c9614e2644a08b65df48d2360dbcc2 by Filip Jeremic
Fix C4146

```
warning C4146: unary minus operator applied to unsigned type, result still unsigned
```
(commit: d1f5435)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
Commit 5527444e3149b694c0a08f6a845c5221fca50df2 by Filip Jeremic
Fix C4102

```
warning C4102: 'init' : unreferenced label
```
(commit: 5527444)
The file was modified compiler/cs2/sparsrbit.h (diff)
Commit 8f54f709fe962a32f6efdee7637747af13fdfc76 by Filip Jeremic
Fix C4267

```
warning C4267: 'argument' : conversion from 'size_t' to 'uint32_t', possible loss of data
```
(commit: 8f54f70)
The file was modified fvtest/compilertest/compile/ResolvedMethod.hpp (diff)
The file was modified fvtest/tril/tril/simple_compiler.cpp (diff)
The file was modified fvtest/tril/tril/CallConverter.cpp (diff)
The file was modified fvtest/compilertest/compile/Method.hpp (diff)
The file was modified compiler/compile/OSRData.cpp (diff)
The file was modified fvtest/compilertest/compile/ResolvedMethod.cpp (diff)
Commit 1fe042dcd5b3011285450dd4e4097396b3fe1f31 by Filip Jeremic
Fix C4390

```
warning C4390: ';' : empty controlled statement found; is this the intent?
```
(commit: 1fe042d)
The file was modified compiler/control/CompilationController.cpp (diff)
Commit d6fc12ec1cf197a32054f0ec5f173975f40e5312 by Filip Jeremic
Fix C4333

```
warning C4333: '&gt;&gt;' : right shift by too large amount, data loss
```
(commit: d6fc12e)
The file was modified compiler/ilgen/OMRJitBuilderRecorderBinaryBuffer.cpp (diff)
Commit 23b616290555d0955c94ee95614c83baea230c82 by Filip Jeremic
Fix C4244

```
warning C4244: '=' : conversion from 'intptr_t' to 'int32_t', possible loss of data
```
(commit: 23b6162)
The file was modified compiler/optimizer/LocalDeadStoreElimination.cpp (diff)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
The file was modified fvtest/compilertest/tests/X86OpCodesTest.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 3de41419b1dd74f53bbf2bff79d1530ae8b1a838 by Filip Jeremic
Fix C4345

```
warning C4345: behavior change: an object of POD type constructed with an initializer of the form () will be default-initialized
```
(commit: 3de4141)
The file was modified compiler/optimizer/TranslateTable.hpp (diff)
Commit 4bbec8cc1fb03e532503930aaf9d44a17d4d5c10 by Filip Jeremic
Fix C4996

```
warning C4996: 'std::_Copy_impl': Function call with parameters that may be unsafe - this call relies on the caller to check that the passed values are correct. To disable this warning, use -D_SCL_SECURE_NO_WARNINGS. See documentation on how to use Visual C++ 'Checked Iterators'
```
(commit: 4bbec8c)
The file was modified cmake/modules/platform/os/win.cmake (diff)
Commit 5c85392551cb06e672bd685db604940c9ec95792 by Filip Jeremic
Fix C4319

```
warning C4319: '~': zero extending 'uint32_t' to 'size_t' of greater size
```
(commit: 5c85392)
The file was modified compiler/ilgen/OMRTypeDictionary.cpp (diff)
Commit b96541dc31e3ef9801e744e6fb3b6f5167835b36 by Filip Jeremic
Fix C4334

```
warning C4334: '&lt;&lt;': result of 32-bit shift implicitly converted to 64 bits (was 64-bit shift intended?)
```
(commit: b96541d)
The file was modified fvtest/compilertest/tests/SingleBitContainerTest.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit fd52af9a129ff7a1d9fd416bc1ebcb618d9f0b8e by Filip Jeremic
Fix corner case negation of INT_MIN in constrainIabs

Similarly with `LONG_MIN` in `constrainLabs`. This functional issue was
introduced while fixing warnings, and this fix has been separated into a
commit of it's own to explicitly islote it.

For full details see the excellent explanation in the following review:
https://github.com/eclipse/omr/pull/6030#discussion_r641981734
(commit: fd52af9)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 198114e134669e5ffff39e848d2f2e0b82b1419d by Filip Jeremic
Fix C4715

```
warning C4715: 'xcmpSuffix&lt;int&gt;': not all control paths return a value
```
(commit: 198114e)
The file was modified fvtest/compilertriltest/SelectTest.cpp (diff)
Commit a067301dba6aec6fc36316d407be430edcd1f96f by Filip Jeremic
Fix C4305

```
warning C4305: 'initializing': truncation from 'double' to 'float'
```
(commit: a067301)
The file was modified fvtest/compilertest/tests/OpCodesTest.cpp (diff)
Commit 3cbc835e98dfc8600974824e75ec243ace02f515 by Filip Jeremic
Enable warnings as errors in compiler component on Windows x86
(commit: 3cbc835)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
Commit 31bfe558552a64cd031d05db0f3bf08eabc7ed4d by Filip Jeremic
Migrate warnings as error queries outside of create_omr_compiler_library

Downstream projects may want to override warnings as errors for compiler
libraries. Specifically, when compiling NASM sources on Windows Cygwin
we want to avoid adding the warnings as error options via the
`target_compile_options` API because NASM on Cygwin does not accept the
`/WX` flag which Visual Studio wants to apply. In such cases the
assembly sources are separated into their own compiler library and
warnings as errors are disabled before creating the library such that
the aforementioned flag is not applied.
(commit: 31bfe55)
The file was modified cmake/modules/OmrCompilerSupport.cmake (diff)
The file was modified jitbuilder/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
Commit 9e907fbc46572cc952eb9db1e204f9e6c8b03d72 by Filip Jeremic
Apply warnings flags only to C/CXX sources

The flag is not compatible with all sources within a target. When we mix
assembly and C/C++ sources the warnings as error flag will be applied to
assembly sources as well, and the assember used may not support this
flag. Because the flag is C/C++ compiler specific at the moment, we only
add the flag for those targets.
(commit: 9e907fb)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
Commit b2e3cb536518375772e622eaad35bf10accdf7e6 by Filip Jeremic
Fix createIntRangeConstraint warning

In a previous commit we erroneously changed the constraing for some VP
handlers to address warnings in the area. We are isolating the this fix
because the previous chnages were functionally incorrect. We address the
warning instead with a template overload for `createIntRangeConstraint`.

See the following review comment for further discussion:
https://github.com/eclipse/omr/pull/6030#discussion_r641864997
(commit: b2e3cb5)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 2c2ebd21e78da17e843d2c578f4f7832e3af46da by Gita Koblents
Add disableStableAnnotations command line option
(commit: 2c2ebd2)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit df01f62792664aefde203b04229255bcc8d7c796 by Gita Koblents
Ignore unreachable paths in TR::GlobalValuePropagation::mergeDefinedOnAllPaths

When we are merging "defined on all" paths information from block
predecessors, we need to ignore the ones that have been proven
unreachable and therefore don't have that information calculated.
Since it's an intersection of the info from all predecessors,
resulting info becomes too conservative and does not allow propagation
that could've happened otherwise.
(commit: df01f62)
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
Commit bf656033bcfde61ca3a45ecf21a2ef0697c6a3f3 by Filip Jeremic
Make InstOpCode an extensible class on ARM

Inherit `OMR::InstOpCodeConnector` like on all other platforms. We had
to adopt the use of the common pseudo-instructions in the ARM codegen to
make this change.
(commit: bf65603)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/InstOpCode.hpp (diff)
Commit faaca57aafdbd46e39cc3a3b1736c18412e5a98f by Filip Jeremic
Create skeleton OMRInstOpCode files and classes

These classes will form the base of the transition from `ARMOpCodes` and
`ARMOpCode` to the new cross platform `TR::InstOpCode`. For now much of
the implementation is left empty as we try to slowly add functionality
from ARMOps.hpp.
(commit: faaca57)
The file was addedcompiler/arm/codegen/OMRInstOpCode.enum
The file was addedcompiler/arm/codegen/OMRInstOpCodeProperties.hpp
The file was addedcompiler/arm/codegen/OMRInstOpCode.cpp
The file was addedcompiler/arm/codegen/OMRInstOpCode.hpp
Commit 5d05197a7ef8234710328113509ee266536780a2 by Filip Jeremic
Replace includes of ARMOps.hpp with OMRInstOpCode.hpp

This is done in preparation for eliminating the former with the latter.
(commit: 5d05197)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/OpBinary.cpp (diff)
The file was modified compiler/arm/codegen/BinaryCommutativeAnalyser.hpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OpProperties.cpp (diff)
The file was modified compiler/arm/codegen/SubtractAnalyser.hpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/arm/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.hpp (diff)
Commit 86cef1561bdcb593ec181eea50ab07c3d0d53070 by Filip Jeremic
Temporarily inherit TR_ARMOpCode from InstOpCode

This allows us to replace all uses of the former with the latter in
preparation for deprecating the former.
(commit: 86cef15)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/InstOpCode.hpp (diff)
Commit 70953c3cba0ca43c80aed2c6f1dcf93a0c9d2b9e by Filip Jeremic
Replace instantiations of TR_ARMOpCode with TR::InstOpCode

Now that we have multiple inheritence properly working, we can replace
all uses of `TR_ARMOpCode` with `TR::InstOpCode`.
(commit: 70953c3)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/ARMGenerateInstructions.cpp (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/ARMBinaryEncoding.cpp (diff)
The file was modified compiler/arm/codegen/StackCheckFailureSnippet.cpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
Commit 088d5c173449cad4e30f60a0de97ced761b5efe4 by Filip Jeremic
Deprecate TR_ARMOpCode

This class can now be replaced by `OMR::ARM::InstOpCode`. We simply copy
over all the APIs from the former to the latter. There is no change in
functionality following this commit.

Further we remove OpBinary.cpp and OpProperties.cpp and replace it with
OMRInstOpCode.cpp.
(commit: 088d5c1)
The file was removedcompiler/arm/codegen/ARMOps2.hpp
The file was modified compiler/arm/codegen/ARMOps.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified fvtest/compilertest/build/files/target/arm.mk (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was removedcompiler/arm/codegen/OpBinary.cpp
The file was removedcompiler/arm/codegen/OpProperties.cpp
The file was modified jitbuilder/build/files/target/arm.mk (diff)
Commit 782e2062a0c86469fcead049be15106aab6407c2 by Filip Jeremic
Inline ARMOps.hpp into OMRInstOpCode.hpp

This is in preparation for deprecating `TR_ARMOpCodes` in favour of the
cross platform `TR::InstOpCode::Mnemonic` enum.
(commit: 782e206)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was removedcompiler/arm/codegen/ARMOps.hpp
The file was removedcompiler/arm/codegen/ARMOps.ops
Commit 6b4ce581e38c549f6b6887f62b3e57432f72555b by Filip Jeremic
Add common pseudo-instructions to ARM enums

In preparation to migrate the mnemonics to OMRInstOpCode.enum.
(commit: 6b4ce58)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
Commit b50d71b8ad7a87b9a456da8cc8d88504e568721f by Filip Jeremic
Alias TR_ARMOpCodes with OMR::InstOpCode::Mnemonic

We also introduce a new file temporarily to make the transition easier.
This new file `#define` all the existing global scoped mnemonics to map
to their `OMR::InstOpCode::Mnemonic` equivalents. We will eventually get
rid of this file as we migrate instructions from the global scope.
(commit: b50d71b)
The file was addedcompiler/arm/codegen/OMRInstOpCode.enum.temp.defines
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/InstOpCode.hpp (diff)
Commit fe2f0b568b0908e89859026a2d89eba88aedf932 by Filip Jeremic
Deprecate TR_ARMOpCodes in favour of TR::InstOpCode::Mnemonic
(commit: fe2f0b5)
The file was modified compiler/arm/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.hpp (diff)
The file was modified compiler/arm/codegen/ARMSystemLinkage.hpp (diff)
The file was modified compiler/arm/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ARMGenerateInstructions.cpp (diff)
The file was modified compiler/arm/codegen/ARMSystemLinkage.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/GenerateInstructions.hpp (diff)
The file was modified compiler/arm/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/arm/codegen/StackCheckFailureSnippet.cpp (diff)
The file was modified compiler/arm/codegen/SubtractAnalyser.hpp (diff)
The file was modified compiler/arm/codegen/BinaryCommutativeAnalyser.hpp (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/Instruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/arm/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/arm/codegen/OMRMemoryReference.hpp (diff)
Commit 257ba18129cf367fd010badcdabe13de79c30598 by Filip Jeremic
Deprecate _opcode in favour of _mnemonic

We no longer need to duplicate the field and can now use the cross-
platform field instead.
(commit: 257ba18)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
Commit 059eecaed4d7688336f19ce7889642570fbcfc9e by Bradley Wood
Add x87 instructions intended for use with pre-encoded registers.
Laying groundwork for removal of x87. See #946

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 059eeca)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
Commit dcfb579327cf5c1dc2c7b912198553b070d81cbd by Bradley Wood
Enable SSE3 feature check which will be required for FP calculations

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: dcfb579)
The file was modified compiler/env/ProcessorInfo.hpp (diff)
Commit e15cc295b7123f4b6df38260329f0aee6bc221ee by Joran Siu
Propagate CEL4RO31 lookup return code to trace point

Capture the CEL4RO31 return code for function lookup
to the Trc_PRT_sl_lookup_name_Exit2 when function is
not found.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: e15cc29)
The file was modified port/zos390/omrsl.c (diff)
Commit 112cce7a295248931c1c30e60bb9317310b8c5bb by Joran Siu
Exploit CEEPCB_3164 indicator bit

LE added a CEEPCB_3164 bit on CEEPCBFLAG6 flag within Process
Control Block (PCB) to indicate support for CEL4RO31/64.  Update
omr_cel4ro31_isSupported() and sl_testOpen31bitDLLviaCEL4RO31
to use this new bit.

Add extern "C" to sltestlib31's function to ensure name is
not C++ mangled.

Signed-off-by: Joran Siu <joransiu@ca.ibm.com>
(commit: 112cce7)
The file was modified port/zos390/omrcel4ro31.c (diff)
The file was modified fvtest/porttest/omrslTest.cpp (diff)
The file was modified fvtest/porttest/sltestlib31/sltest.cpp (diff)
Commit 2200a36a2324bac1d6bf990e007c2d6a130026f8 by Filip Jeremic
Use common assocreg instruction on x86
(commit: 2200a36)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
Commit ef995bcffac15bf5bee25bd7b5328534d2af062d by Filip Jeremic
Use common bad instruction on x86
(commit: ef995bc)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
Commit 116b1ce36db1545e20b2a88fecb2cc5a80d1a26b by Filip Jeremic
Use common fence instruction on x86
(commit: 116b1ce)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
Commit 9fc3a0fc8455847f61e8570139f7b270e15eda51 by Filip Jeremic
Use common label instruction on x86
(commit: 9fc3a0f)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/IA32SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.cpp (diff)
Commit 9263c24850c29d0bfe761ebfe824385c00cfeb12 by Filip Jeremic
Use common proc instruction on x86
(commit: 9263c24)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
Commit 00b45083678a108147944c58b7b17fcbc693a7ce by Filip Jeremic
Use common retn instruction on x86
(commit: 00b4508)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
Commit 5849cdcefc9864c5921cb5f03d625602d5da6f02 by Filip Jeremic
Use common vgnop instruction on x86
(commit: 5849cdc)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
Commit d317906850c356332b2135e8a70c395214b3a79e by Filip Jeremic
Remove unused pseudo-instructions on x86

The following instructions are not used anywhere in the codebase nor in
any downstream projects:

- VGFENCE
- WRTBAR
- FPREGSPILL
- RestoreVMThread
- PPS_OPCount
- PPS_OPField
(commit: d317906)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/x/i386/codegen/IA32SystemLinkage.cpp (diff)
Commit a35086474b98507f61f967cd246c2b4b8f7f34fb by Filip Jeremic
Prefix x86 instruction mnemonic usages with TR::InstOpCode::
(commit: a350864)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/i386/codegen/IA32SystemLinkage.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/codegen/IA32LinkageUtils.cpp (diff)
The file was modified compiler/x/amd64/objectfmt/OMRJitCodeRXObjectFormat.cpp (diff)
The file was modified compiler/x/codegen/X86FPConversionSnippet.cpp (diff)
The file was modified compiler/x/env/OMRCPU.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/x/amd64/objectfmt/OMRJitCodeRWXObjectFormat.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was removedcompiler/x/codegen/OMRInstOpCode.enum.temp.defines
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
Commit 0b28027b259b30de43c6d795c4bfa1ca6885818a by Filip Jeremic
Refactor opcode parametarizations in preparation for migration

To migrathe some of the parametarized opcodes we eliminate the template
definitions if favour of macros which we will move into the `InstOpcode`
class in the following commit. This change should not have any effect on
semantics of the code and it is purely stylistic.

The previous `#define` definitions of these mnemonics would not work
because of the C preprocessor, so we could not properly qualify the
mnemonics with `TR::InstOpCode::` in code because the function
definitions of the parameterized mnemonics do not exist in that class.
We have to have actual functions there for the name resolution to work,
so we had to move away from the `#define` to an inline function.
(commit: 0b28027)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
Commit 72269577f3a225572c804664030cbba04cdc6cf5 by Annabelle Huo
Fix accessing NULL lhs or rhs when printing VP in trace

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 7226957)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit ecde3a1b747d8d5b82957b1512411bb3020df5f9 by Dhruv Chopra
Remove OpenJ9 specific evaluators from z/codegen

The evaluators removed in this commit are OpenJ9 specific
and were previously being declared in OpenJ9. This commit
removes the definitions down to OpenJ9 as well. The
evaluators that cannot be moved down are now defined in the
OMRTreeEvaluator class itself.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: ecde3a1)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/z/codegen/OMRTreeEvaluator.hpp (diff)
Commit 29eff5463aad93c8f100762d3c82365bf1acc8fa by Jan Vrany
Use SKIP_ON_* macros to skip CallTest on unsupported platforms
(commit: 29eff54)
The file was modified fvtest/compilertriltest/CallTest.cpp (diff)
Commit ce144df72da2d185dbbb8dc11bb2e3828c0f59e3 by Jan Vrany
RISC-V: fix registerExchange() for FP registers

By mistake, parameters to registerCopy() used in registerExchange()
were swapped.
(commit: ce144df)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
Commit 9949cc6daf982e999c29f619b34eb757816eb564 by Jan Vrany
RISC-V: implement registerCopy() for FP registers
(commit: 9949cc6)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
Commit 72ee978807501b691977371850383b80a97b8a40 by Jan Vrany
RISC-V: rename getNumberOfDependencyGPRegisters() to getNumberOfDependencyRegisters()

This seems to be a better name as this number includes both, GPRs and FPRs, see its
usage in RVSystemLinkage::buildArgs().
(commit: 72ee978)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
Commit 3d133dd95d84930fc6bbb1f82544f4fd2d1f02fe by Jan Vrany
RISC-V: increase a number dependency registers to accommodate both all GPRs and all FPRs

This is safe default.
(commit: 3d133dd)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit c5088056ffc8cb61afff170a512048a6212e6da8 by Jan Vrany
RISC-V: fix NULLing of register dependencies in `RVSystemLinkage::buildArgs()`

The original code was copied from AArch64 backend but was not properly updated
to RISC-V. This commit fixes that by properly NULLing dependencies for
all unused argument registers and for all non-preserved registers (both, GPRs and FPRs)
(commit: c508805)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 86b4a2b13715c139726760960df58fada65853f1 by Jan Vrany
RISC-V: take parameter offset into account when passing parameters on stack
(commit: 86b4a2b)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
Commit 38d6646e35820046751636d20cc19935c3253e71 by Jan Vrany
RISC-V: fix passing FP arguments when using system linkage

As specified in RISC-V PSABI spec [1], if there's more than 8 FP arguments,
they're passed the same way as integer arguments, that is, in a0 a7 GPRs
if available.

This commit fixes RVSystemLinkage to comply with the RISC-V PSABI
regarding FP arguments.

[1]: https://github.com/riscv/riscv-elf-psabi-doc/blob/master/riscv-elf.md#hardware-floating-point-calling-convention
(commit: 38d6646)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit fc21c2635df774b3b67290a294bc9bf5d6297cf8 by Jan Vrany
RISC-V: fix direct calls for resolved methods

Normally, direct calls to other methods are not supported because
of missing support for trampolines (at OMR level). However, this
is a severe limitation because most JITs call runtime services (helpers).

To workaround this limitation, if - at isel time - a direct call calls
a resolved method whose address is already known, load that address
and use an indirect jump (`jarl`) to make the call. While this may be wastefull
if caller and callee are close enough (to fit in `jal` immediate), it
is safe(r).

This allows for some demos to be made :-)

Signed-off-by: Jan Vrany <jan.vrany@fit.cvut.cz>
(commit: fc21c26)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified fvtest/compilertriltest/CallTest.cpp (diff)
Commit 603ea107e56ba6404560d240e577c6e7aaaa9032 by Jan Vrany
RISC-V: enable linkage tests
(commit: 603ea10)
The file was modified fvtest/compilertriltest/LinkageTest.cpp (diff)
Commit b17a7cd7bcb82f2b5951f0fff818461c45cc7a66 by tao guan
Move definition of PersistentInfo::createCounters to cpp file

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: b17a7cd)
The file was modified compiler/env/OMRPersistentInfo.cpp (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
Commit d4daa7aa222e3138e865bfd13895990416c162e9 by Kazuhiro Konno
AArch64: Fix compareIntsAndBranchForArrayCopyBNDCHK()

An expression for TR_ASSERT_FATAL() in
compareIntsAndBranchForArrayCopyBNDCHK() for AArch64 is wrong.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: d4daa7a)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 502e5ca4d03583cc814715549fbd1cbb9b3512c2 by tao guan
Remove inline keyword from OMR::Optimizer::self in cpp file

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 502e5ca)
The file was modified compiler/optimizer/Optimizer_inlines.hpp (diff)
The file was modified compiler/optimizer/Optimizer.hpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
Commit 4162462d5341b5c41e86f67c931b6218427f56d6 by Jan Vrany
RISC-V: improve loadConstant64()

This commit changes code sequence used to load 64bit constants. It first
loads high 32bit value into target registers' low 32bits and then use
a sequence of slli + addi instructions to load lower 32 bits.

The advantage of this approach is that this sequence uses only one
(target) registers whereas the previous one required additional scratch
register.
(commit: 4162462)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
Commit d5ec0c2a0e9965d94a1366fe9b4cadda0ccfdd29 by Lin Hu
New static method initializeFreeMemoryProfileMaxSizeClasses

global variables largeObjectAllocationProfilingVeryLargeObjectThreshold,
largeObjectAllocationProfilingVeryLargeObjectSizeClass and
freeMemoryProfileMaxSizeClasses are initialized during
MM_LargeObjectAllocateStats construction, new static method
initializeFreeMemoryProfileMaxSizeClasses is created for avoiding the
case, which the global variables has been used before initialized.


Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: d5ec0c2)
The file was modified gc/stats/LargeObjectAllocateStats.hpp (diff)
The file was modified gc/stats/LargeObjectAllocateStats.cpp (diff)
The file was modified gc/stats/FreeEntrySizeClassStats.hpp (diff)
Commit 8a7f2c0cd19b416626c81fab6602bfbb32c102af by Jan Vrany
RISC-V: use either `auto` or explicitly-sized integer types

In order to follow compiler convention, this commit changes uses of
`int` to either `auto` (where correct type can be inferred) or to
explicitly-sized integer type.
(commit: 8a7f2c0)
The file was modified compiler/riscv/codegen/RVDebug.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.hpp (diff)
The file was modified compiler/riscv/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/riscv/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
The file was modified compiler/riscv/codegen/OMRLinkage.cpp (diff)
Commit b12110c4f0872e3c7f5d71d74bf618dd5d3d5842 by tao guan
Add guarding macro when including OS specific header

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: b12110c)
The file was modified compiler/ras/CallStack.hpp (diff)
The file was modified compiler/ras/CallStack.cpp (diff)
Commit ec0f7f644e8be8ed0b72292f919c46fc276acd35 by noreply
Revert "Move definition of PersistentInfo::createCounters to cpp file"
(commit: ec0f7f6)
The file was modified compiler/env/OMRPersistentInfo.cpp (diff)
The file was modified compiler/ras/DebugCounter.cpp (diff)
Commit f7368dd82e95798fb4eb3c713d2437ebd1a05caa by Filip Jeremic
Prefix x86 parameterized instruction mnemonic usages with TR::InstOpCode::
(commit: f7368dd)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/x/codegen/OutlinedInstructions.cpp (diff)
The file was modified compiler/x/amd64/codegen/AMD64SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/x/amd64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/BinaryCommutativeAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/CompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/x/codegen/X86FPConversionSnippet.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86Debug.cpp (diff)
The file was modified compiler/x/codegen/DivideCheckSnippet.cpp (diff)
The file was modified compiler/x/codegen/SIMDTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRSnippet.cpp (diff)
The file was modified compiler/x/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/x/codegen/IA32LinkageUtils.cpp (diff)
The file was modified compiler/x/codegen/IntegerMultiplyDecomposer.cpp (diff)
The file was modified compiler/x/codegen/OMRMachine.cpp (diff)
The file was modified compiler/x/codegen/RestartSnippet.hpp (diff)
The file was modified compiler/x/i386/codegen/IA32SystemLinkage.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
Commit e4fe8b4975e43a16ac23dbc8bafc17ef0a91a709 by Filip Jeremic
Use common bad instruction on ARM
(commit: e4fe8b4)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/ARMSystemLinkage.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
Commit aba6226d9afb1add2ed2eb16f4aae906d891330d by Filip Jeremic
Use common dd instruction on ARM
(commit: aba6226)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
Commit 46b56b52cf91dbb4bd07f049cd35a4ed8a64a120 by Filip Jeremic
Use common fence instruction on ARM
(commit: 46b56b5)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/ARMBinaryEncoding.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
Commit 54e8adbf5db43c53385b1356b1615841beb9ee0b by Filip Jeremic
Use common label instruction on ARM
(commit: 54e8adb)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.cpp (diff)
The file was modified compiler/arm/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
Commit e054445d36f2cd6542a7de9d997f9f82b795b120 by Filip Jeremic
Use common proc instruction on ARM
(commit: e054445)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
Commit 673947056f4d289c0e17402fb6885b299f9e534b by Filip Jeremic
Use common retn instruction on ARM
(commit: 6739470)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
Commit 806879886e261c8e9da278277c006e98b1ef4f23 by Filip Jeremic
Use common vgnop instruction on ARM
(commit: 8068798)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum.temp.defines (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
Commit 8fc31ef4fd3e60380152627290c074f2c9e623fa by Filip Jeremic
Prefix ARM instruction mnemonic usages with TR::InstOpCode::
(commit: 8fc31ef)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.hpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was removedcompiler/arm/codegen/OMRInstOpCode.enum.temp.defines
The file was modified compiler/arm/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/arm/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/arm/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ARMSystemLinkage.cpp (diff)
The file was modified compiler/arm/codegen/ARMGenerateInstructions.cpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.cpp (diff)
The file was modified compiler/arm/codegen/ARMBinaryEncoding.cpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
Commit 1a5a46e464546f42e8374c2c7eae0fba3d463698 by Filip Jeremic
Enhance warnings as error flag to be language specific

We start off by replacing `OMR_WARNING_AS_ERROR_FLAG` with a definition
per language, i.e. `OMR_<LANG>_WARNINGS_AS_ERROR_FLAG`. This lets us
define custom flags per compiler toolchain. More specifically for cross
compilations, ex. Cygwin, we can supply a custom flag for NASM file
compilations correctly.

We will add subsequent flags for other languages in new commits.
(commit: 1a5a46e)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/verify.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/xlc.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/gnu.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/msvc.cmake (diff)
Commit 47f3045296527af2707e146c60f0bc1465ab0298 by Filip Jeremic
Deprecate OMR_BASE_WARNING_FLAGS

This define is not being used anywhere.
(commit: 47f3045)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
Commit b3689e9421c239a5e3ba1fb8e2fae1c320e2aea5 by Filip Jeremic
Add warnings as error and enhanced warnings flags for MASM and NASM
(commit: b3689e9)
The file was modified cmake/modules/platform/toolcfg/gnu.cmake (diff)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
The file was modified cmake/modules/platform/toolcfg/msvc.cmake (diff)
Commit 551857c1ca9c22ce7085547a8b5fa2e18cd690ad by Md. Alvee Noor
AArch64: Int32 & Int64 Support for Vector Add

This commit accommodates Int32 & Int64 support for vector add
operations.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 551857c)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit ea6ff48c83da6e3ecb371b0a1b8e7868c67db0f4 by Md. Alvee Noor
AArch64: Int32 & Int64 Support for Vector Subtract

This commit accommodates Int32 & Int64 support for vector subtraction
operations.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: ea6ff48)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
Commit 9b9f82d11c2a7b5a48ed8af3aba9721e87e9efbb by Md. Alvee Noor
AArch64: Int32 Support for Vector Multiplication

This commit accommodates Int32 support for vector multiplication
operations.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 9b9f82d)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
Commit 50dcd289366e5b639d987aab039790611f25243c by Jan Vrany
RISC-V: convert some TR_ASSERT()s to TR_ASSERT_FATAL()s
(commit: 50dcd28)
The file was modified compiler/riscv/codegen/OMRMachine.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
Commit 68cbeb8c38acdccaf58ae2ddf6c963425b9b6e6d by Jan Vrany
RISC-V: convert some C-style casts to C++ casts
(commit: 68cbeb8)
The file was modified compiler/riscv/codegen/RVInstruction.cpp (diff)
The file was modified compiler/riscv/codegen/RVSystemLinkage.cpp (diff)
Commit 7fe991d61b278cd5af361c5c531fc95ed070d481 by Filip Jeremic
Remove ARMOp_ prefix now that mnemonics are enum scoped
(commit: 7fe991d)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/arm/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/SubtractAnalyser.cpp (diff)
The file was modified compiler/arm/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/arm/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/arm/codegen/OMRMachine.cpp (diff)
The file was modified compiler/arm/codegen/ARMGenerateInstructions.cpp (diff)
The file was modified compiler/arm/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/arm/codegen/ARMBinaryEncoding.cpp (diff)
The file was modified compiler/arm/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/arm/codegen/ARMOutOfLineCodeSection.cpp (diff)
The file was modified compiler/arm/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ARMSystemLinkage.cpp (diff)
The file was modified compiler/arm/codegen/ARMInstruction.hpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/arm/codegen/ARMDebug.cpp (diff)
The file was modified compiler/arm/codegen/OMRInstOpCode.cpp (diff)
Commit 7bac47e14910cb462c9af0e644cdbb7fe1a35b9e by Md. Alvee Noor
AArch64: Vector Splat Implementation

This commit accommodates the implementation of the vector splat
operation and respective opcodes for the data types-
- VectorInt8
- VectorInt16
- VectorInt32
- VectorInt64
- VectorFloat
- VectorDouble

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 7bac47e)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 78fd83d7c8be0c455ef25a2693c28897869307af by Filip Jeremic
Check for warnings as error flag definition before using it
(commit: 78fd83d)
The file was modified cmake/modules/platform/toolcfg/gnu.cmake (diff)
The file was modified cmake/modules/OmrTargetSupport.cmake (diff)
Commit 358645cdf96b51b260415e959ddf13228010a025 by Kazuhiro Konno
AArch64: Add arraycopy helpers

This commit adds helper entries for arraycopy for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 358645c)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 61593b201b947a46c5d19b311b38c16fe409088d by Filip Jeremic
Fix -Wformat

```
warning: format ‘%x’ expects argument of type ‘unsigned int’, but argument 3 has type ‘intptr_t {aka long int}’ [-Wformat=]
```
(commit: 61593b2)
The file was modified compiler/z/runtime/VirtualGuardRuntime.cpp (diff)
The file was modified fvtest/compilertriltest/IfxcmpgeReductionTest.cpp (diff)
The file was modified fvtest/compilertriltest/CompareTest.cpp (diff)
The file was modified fvtest/compilertriltest/LongAndAsRotateTest.cpp (diff)
The file was modified fvtest/tril/tril/ast.cpp (diff)
The file was modified fvtest/compilertriltest/TypeConversionTest.cpp (diff)
The file was modified jitbuilder/release/cpp/samples/Pow2.cpp (diff)
Commit 186ac2f22b55cfa1d08a6c9937ea936d48fcb5bc by Filip Jeremic
Fix -Wconversion-null

```
warning: converting to non-pointer type ‘long unsigned int’ from NULL [-Wconversion-null]
```
(commit: 186ac2f)
The file was modified compiler/z/codegen/OMRTreeEvaluator.cpp (diff)
Commit 66e9c453d877d432924e071c243b573b932f0ffb by Oussama Saoudi
Refactor copy to use template for concurrent GC

Copy is now an inline function which calls copyForVariant, which
performs the previous functionality for copy. copyForVariant is a
template function that is told the variant of template that it is to
use, either CS or STW. This dictates if copyForVariant should
exhibit Concurrent Scavenger behaviour or Stop The World behaviour.

The enum CopyVariant is introduced to represent the different variants
of copyForVariant. The two options are STW for IS_CONCURRENT_ENABLED
== false, and CS for IS_CONCURRENT_ENABLED == true.

Signed-off-by: Oussama Saoudi <oussama.saoudi@ibm.com>
(commit: 66e9c45)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
Commit 27bd96757f35302ed9aca427dfc5305b271c0941 by Md. Alvee Noor
AArch64: Enable Vectorization

This commit accommodates changes needed to enable the vectorization for
AArch64. The followint changes are made-
- Called `setSupportsAutoSIMD()` in code generator.
- Implemented `getSupportsOpCodeForAutoSIMD()`.

Signed-off-by: Md. Alvee Noor <mnoor@unb.ca>
(commit: 27bd967)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit c7270ba183df53a60ba9375c31108983c1932be8 by Keith W. Campbell
Remove link to obsolete compressed pointers build

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: c7270ba)
The file was modified README.md (diff)
Commit 4d145987d94a3d2c7d2c7bf011109eba15885820 by Daryl Maier
Remove obsolete long parm value profiling code

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 4d14598)
The file was modified compiler/optimizer/PartialRedundancy.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 87fba64e81d785fd9959b06674734a6995992539 by Mike Zhang
Get real MacOS product version if in compability mode

If a program is built by a 10.15 or earlier SDK is run on Big Sur (version 11)
or newer, it will run in a backwards compatibility context which will return
product version as 10.16.

Thus, when we need to get Mac OS version when running on 11+, we need to use
a workaround to get the real version string. In this case, we look at a symlink
to the SystemVersion.plist file which bypasses the backwards compatibility
context.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: 87fba64)
The file was modified port/unix/omrsysinfo.c (diff)
Commit 6374ead44793a28753dd1816702448c0584057c1 by Bradley Wood
Invalidate parmInfo for DLT compiles
(commit: 6374ead)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
Commit 9ed846262981a8caaac858a223b46a1e05e7d5a4 by Siri Sahithi Ponangi
AArch64: Assembly helper for arraycopy

This commit adds assembly file for arraycopy for primitive
nodes in forward and backward directions.

Issue: #6438

Co-authored-by: KONNO Kazuhiro <konno@jp.ibm.com>

Signed-off-by: Siri Sahithi Ponangi <sahithi.ponangi@unb.ca>
(commit: 9ed8462)
The file was modified compiler/aarch64/CMakeLists.txt (diff)
The file was addedcompiler/aarch64/runtime/ARM64arrayCopy.spp
Commit dd636ba2df5b8210724a023fed971a2e2e87ca7b by Akira Saitoh
AArch64: Add TR_Debug::printARM64ArgumentsFlush

This commit adds printARM64ArgumentsFlush to TR_Debug.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: dd636ba)
The file was modified compiler/ras/Debug.hpp (diff)
Commit 81bcea3fb3333cf63b67298e845ed385c423d679 by Lin Hu
Simplify the logic for identifying minimum free size for sweeping

New variable _minFreeSize in MM_ParallelSweepChunk for keeping minimum
free entry size for sweeping related memory pool.
Avoid callback check and retrieve minimum free entry size from
memorypool every time.

for Default case:
minimum free entry size = memorypool.minimumFreeEntrySize

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: 81bcea3)
The file was modified gc/base/SweepPoolManagerAddressOrderedListBase.hpp (diff)
The file was modified gc/base/standard/SweepHeapSectioningSegmented.cpp (diff)
The file was modified gc/base/SweepPoolManagerAddressOrderedListBase.cpp (diff)
The file was modified gc/base/SweepPoolManager.hpp (diff)
The file was modified gc/base/ParallelSweepChunk.hpp (diff)
Commit 097a80af034561e582aea610365d3d4b12729529 by Peter Shipton
Remove atoe_gets() since gets() is insecure and deprecated

gets() is deprecated in the C runtime (C99) and subsequently removed
(C11).

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: 097a80a)
The file was modified util/a2e/atoe.c (diff)
The file was modified util/a2e/headers/stdio.h (diff)
The file was modified util/a2e/headers/old-stdio.h (diff)
Commit f54d2012bff50e7df684e0859e2e897a50c1487d by Devin Papineau
Version HCR guards even if they are loop transfer candidates

Once versioner has decided to use loop transfer for a guard, there is a
guarantee that the guard, if it is still present in the hot loop, will
exit the loop if taken. The guard can still be versioned (and removed
entirely from the loop), in which case there will no longer be any
possibility that it could be taken at all. So the taken edge of the
guard can always be disregarded when searching the loop for operations
that will remain in the hot loop after versioning. To make such searches
more precise, loop transfer candidates are automatically included in
_definitelyRemovableNodes and _optimisticallyRemovableNodes.

One such search of the loop determines whether or not HCR guards can be
versioned, and also finds the HCR guards to be versioned (if possible).
By ignoring removable nodes before checking whether they are HCR guards,
this search has been failing to find HCR guards that are also loop
transfer candidates (in the current loop). As a result, versioner has
been failing to version those HCR guards even when the analysis
concludes that it is safe to do so (and even though versioning is
preferable to loop transfer).

With this commit, the HCR guard search will now check for an HCR guard
before skipping the node (in case it is removable). This way, HCR guards
will be identified and (if possible) versioned regardless of whether
they are also loop transfer candidates.

Note that this change only affects HCR guards that are loop transfer
candidates in the *current* loop. It's possible to have guards that
appear within the current loop, and which are also loop transfer
candidates, but which are only considered for loop transfer in an outer
loop because they target blocks that are already outside of the current
loop. Such guards are not included in _definitelyRemovableNodes and
_optimisticallyRemovableNodes (and because their targets are outside of
the current loop, including them wouldn't be helpful), so they would be
found and versioned appropriately even before this commit.
(commit: f54d201)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 30b00ab6d5d7e5b811f22c750e966357f4c054d2 by Kazuhiro Konno
AArch64: Code cleanup

This commit contains the following changes:

- Remove unnecessary end-of-line characters from TR_ASSERT() messages
- Include header files in alphabetical order in OMRTreeEvaluator.cpp
- Change the indentation of a line in OMRTreeEvaluator.cpp

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 30b00ab)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
Commit 96d3cdff6da47530268bed72c9709d45787d7993 by Akira Saitoh
AArch64: Use xzr register for storing zero

This commit changes commonStoreEvaluator to use xzr register
if the stored value is a zero constant integer.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 96d3cdf)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 90f845c94414a932db5dda76a646d09ad423b32e by Dmitry Ten
Add a new verbose option for JITServer

This commit adds a new verbose option `TR_VerboseJITServerConns`.
The option is used by OpenJ9 JITServer to log connection events
between servers and clients.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: 90f845c)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit bd2c683b9ad92078e2eaa1078014a9bfc346fd5e by Filip Jeremic
Fix -Wenum-compare

```
warning: comparison between ‘enum OMR::RealRegister::RegNum’ and ‘enum OMR::RealRegister::RegDep’ [-Wenum-compare]
```
(commit: bd2c683)
The file was modified compiler/codegen/OMRRealRegister.hpp (diff)
Commit 552197263c7a007e23ff479b10010edf5eece87a by Filip Jeremic
Disable -Winvalid-offsetof in OMROptions and FEBase.cpp

See #1662 for some further details. This will not be easy to solve
becalse it is not straightforward to covert `TR::JitConfig` to a POD
so we can use `offsetof`. This will hopefully be solved via the options
framework overhaul, so fixing this warning properly is not worth the
effort at the moment. Instead we locally disable this warning around
the problematic area.
(commit: 5521972)
The file was modified compiler/env/FEBase.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit a544b0f5738b62ef7912a96f7e9e5245202eacb0 by Filip Jeremic
Fix CCN5216

```
CCN5216 (W) An expression of type "void *" cannot be converted to type "void (*)(int, int, int *)".
```
(commit: a544b0f)
The file was modified fvtest/compilertest/tests/BuilderTest.cpp (diff)
The file was modified fvtest/compilertest/tests/OpCodesTest.hpp (diff)
The file was modified jitbuilder/apigen/cppgen.py (diff)
The file was modified fvtest/compilertest/tests/Qux2Test.cpp (diff)
The file was modified fvtest/tril/test/IlGenTest.cpp (diff)
The file was modified fvtest/compilertest/tests/FooBarTest.cpp (diff)
The file was modified fvtest/compilertriltest/MinimalTest.cpp (diff)
The file was modified fvtest/compilertest/tests/OptTestDriver.hpp (diff)
The file was modified fvtest/tril/tril/method_compiler.hpp (diff)
Commit e3150dcfc64fa1af9396e4033954dba951d97486 by Filip Jeremic
Fix CCN6101

```
CCN6101 (W) A return value of type "bool" is expected.
```
(commit: e3150dc)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/compile/ResolvedMethod.cpp (diff)
The file was modified compiler/z/env/OMRCPU.cpp (diff)
Commit 75ef1cc46ca09657b3bb715d8a89145cdbd9f37f by Filip Jeremic
Fix CCN6404

```
CCN6404 (W) The parameter "OS" specified for "pragma linkage" is not valid. The pragma is ignored.
```

According to the documentation `#pragma linkage` is only valid for C
compilation units.
(commit: 75ef1cc)
The file was modified util/omrutil/j9memclr.cpp (diff)
Commit 3b2f59802ac221b04924354be8534ec683ef03f1 by Irwin D'Souza
Add compilePortableCode query

Add a new query to the TR::Compilation class to allow the compiler to
query whether the runtime is some kind of mode (such as
snapshot/restore) that would necessitate the compiler to generate
code that is portable (ie generated on one system but can run on
another). This is different from relocatable compiles because, for
example with snapshot/restore, the code does not need to be relocated
but it does need to be portable.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 3b2f598)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/IntegerMultiplyDecomposer.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
The file was modified compiler/compile/OMRCompilation.hpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/i386/codegen/OMRTreeEvaluator.cpp (diff)
Commit 6ffedb9fa9b60285503fdb5d23f0f5a986d7fdd8 by Lin Hu
Share common logic in SweepHeapSectioning base class

Avoid logic duplication between SweepHeapSectioning subclasses

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: 6ffedb9)
The file was modified gc/base/standard/SweepHeapSectioningSegmented.hpp (diff)
The file was modified gc/base/standard/SweepHeapSectioningSegmented.cpp (diff)
The file was modified gc/base/SweepHeapSectioning.cpp (diff)
The file was modified gc/base/SweepHeapSectioning.hpp (diff)
Commit 8cc9ed4dae731b86291d3156a3cd7b55ac664675 by Filip Jeremic
Fix CCN8924

```
CCN8924 (W) Cannot pass an argument of non-POD class type "TR::DataType" through ellipsis.
```
(commit: 8cc9ed4)
The file was modified fvtest/compilertest/tests/OpCodesTest.hpp (diff)
The file was modified fvtest/tril/test/ASTTest.cpp (diff)
The file was modified compiler/env/FEBase.cpp (diff)
The file was modified fvtest/compilertest/tests/FooBarTest.cpp (diff)
The file was modified compiler/codegen/OMRRealRegister.hpp (diff)
The file was modified fvtest/compilertriltest/MinimalTest.cpp (diff)
The file was modified jitbuilder/apigen/cppgen.py (diff)
The file was modified fvtest/compilertest/tests/BuilderTest.cpp (diff)
The file was modified fvtest/tril/tril/ast.cpp (diff)
The file was modified fvtest/tril/test/IlGenTest.cpp (diff)
The file was modified fvtest/tril/tril/method_compiler.hpp (diff)
The file was modified fvtest/compilertest/tests/Qux2Test.cpp (diff)
The file was modified fvtest/compilertest/tests/OptTestDriver.hpp (diff)
The file was modified compiler/z/env/OMRCPU.cpp (diff)
The file was modified compiler/ilgen/OMRIlBuilder.cpp (diff)
The file was modified jitbuilder/release/cpp/samples/Pow2.cpp (diff)
Commit 08d39e6137cbb211fcfba02931aa9ec5cb7b062a by Filip Jeremic
Fix CCN5562

```
CCN5562 (W) No code is generated for the asm statement. The asm statement is ignored.
```

Assembly generation for C/C++ code is disabled by default unless the
`-qasm` flag is set. The above warning was telling us the inline
assembly code was not generating anything, which is definitely not
what we want. Enabling `-qasm` further exposes bugs with the syntax
for inline assembly on xlC which is why the changes in AtomicSupport.cpp
were needed.
(commit: 08d39e6)
The file was modified cmake/modules/platform/toolcfg/xlc.cmake (diff)
The file was modified include_core/AtomicSupport.hpp (diff)
Commit 66d9bde92a02e4d3397af160b81c14c070f17896 by Gita Koblents
Don't use once read symbol heuristics in UseDef at warm

    - Use onceReadSymbolsIndices at < warm since it helps performance
      without considerably increasing compile time
(commit: 66d9bde)
The file was modified compiler/optimizer/UseDefInfo.cpp (diff)
Commit dda2fa54c06e97e48b8ded1d50865c47b0ef23b1 by Bradley Wood
Define int3 and ud2 instructions for breakpoints and invalid opcodes

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: dda2fa5)
The file was modified compiler/x/codegen/X86Ops.ins (diff)
The file was modified compiler/x/codegen/OMRInstOpCode.enum (diff)
Commit 74d9abcf6642c814af49b55eb1a876172dee4bc8 by Bradley Wood
Replace TR::InstOpCode::bad with int3 or ud2 instruction

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 74d9abc)
The file was modified compiler/x/codegen/OMRX86Instruction.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/x/codegen/X86SystemLinkage.cpp (diff)
Commit 3e0c2be300517bbb7c7421866b6de5ecb1b124d3 by Bradley Wood
Refactoring FPTreeEvaluator in process of removing x87 support.
Removed conditional logic to always use SSE.

Issue: #964
Signed-off-by: BradleyWood <bradley.wood@ibm.com>

Remove comment

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 3e0c2be)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit b383e116bcdde423277cba4b23431c5464b5d033 by Bradley Wood
Refactor float/double to long conversion on x86 to use SSE instead of x87 instructions

Issue #964
Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: b383e11)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit f306fadcc73fc6391606ffe6dd7934abdf2fcbba by Bradley Wood
Remove unused x87 code from FPTreeEvaluator

Issue: #964
Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: f306fad)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
Commit f222cc852daf77f8f8873ac05bb711e938d7244f by Bradley Wood
Modify f2l conversion to use x87 intructions with pre-encoded registers

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: f222cc8)
The file was modified compiler/x/codegen/X86FPConversionSnippet.hpp (diff)
The file was modified compiler/x/codegen/X86FPConversionSnippet.cpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit d6e5b7248b4a6cc8919660a53c78809cfc3c7af9 by Bradley Wood
Remove unused f2i,d2i conversion code
(commit: d6e5b72)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit 23c6eb1ed35562fea619f2e86a69843673440a57 by Bradley Wood
Remove need for x87 register allocation in fpReturnEvaluator

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 23c6eb1)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
Commit ab12391d24335083ddafb27a7ab75e503345589c by Bradley Wood
Remove unused branches, fold branches that are always execute

Cleanup fpConvert2Int, fpConvert2Long evaluators

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: ab12391)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
Commit c0c0bd02d20c45bcf48ce4a819561323008d7963 by Akira Saitoh
AArch64: Use ubfm instruction for shift and mask operation if possible

Generates `ubfm` instruction for shift and mask operation if the operation
can be encoded into `ubfm`.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: c0c0bd0)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 6ab9b6d444041a500201113a421f28745b553200 by Filip Jeremic
Suspend convlit around inline assembly on z/OS

If we are building with `-Wc,"convlit(ISO8859-1)"` xlC option then we
want to avoid doing literal conversion of inline assembly statements
because HLASM expects them to be in EBCDIC. Failing to do this results
in compilation errors with HLASM as it tries to interpret ASCII
characters of the inline assembly string.

This pragma is used elsewhere in the codebase so it is not something
new.
(commit: 6ab9b6d)
The file was modified include_core/AtomicSupport.hpp (diff)
Commit 1f9ed3a57db1aa0c5281abf3ebc2b870a4847d1b by Akira Saitoh
AArch64: Use add/sub shifted register instruction if possible

Use add (shifted register) instruction if add operation can be
encoded into this instruction.
Similarly, use sub (shifted register) instruction if sub operation
can be encoded into this instruction.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 1f9ed3a)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit a33823a11d455198cba75da7060383937783fc54 by Akira Saitoh
AArch64: Reuse src registers in `generateMaddOrSub` if possible

This commit changes `generateMaddOrMsub` to reuse one of source registers
if the source node's reference count is 1.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: a33823a)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 72c6a8f027bf7a3e2369fb31b7c0895fe92a6cfb by Akira Saitoh
AArch64: Enable shifted immediate for add/sub instructions

This commit enables use of shifted immediate value for
`add` and `sub` instructions and their variants.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 72c6a8f)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
Commit b7314a848d0fe780ffc2dde99a2be71e6ccc2c5c by Gita Koblents
Use getVirtualCallNodeForGuard() during ValuePropagation
   - replace existing code in constrainIfcmpeqne by a call
     to getVirtualCallNodeForGuard()
(commit: b7314a8)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit cfed42b96e55fe5469faed7954b90e0e0f3749c8 by Mike Zhang
Add new core dump tool for OSX

Dumping core using the signal requires an the task-get-allow
entitlement, which prevents notarization. Thus we dump the core
with a user space tool which does not require an entitlement.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: cfed42b)
The file was addedport/osx/omrosdump.c
Commit acfef7d34584bd3d19fe574a43a3a9ca6502046b by Aleksandar Micic
Reduce Scavenger Remember Set Puddle size

Interim solution to improve parallelism early in Scavenge cycle, as
explained in https://github.com/eclipse/omr/issues/6024

Signed-off-by: Aleksandar Micic <amicic@ca.ibm.com>
(commit: acfef7d)
The file was modified include_core/omrgcconsts.h (diff)
Commit 43323d20c15233fcedd2c576a4d1385a075916bc by Devin Papineau
Assert that labels are defined when applying label relocations

A label has a null address until its location is determined when it is
encountered in the instruction stream during binary encoding. When the
compiler generates a jump to a label whose address has not yet been
determined, it also generates a label relocation to correct the jump
target once the label's address is known after binary encoding. But if
for some reason the label's address is never updated, the relocation
would silently continue using zero and generate an incorrect jump.

Because such jumps can be hard to debug, this commit adds assertions
that verify that the label has at least had some address set, otherwise
failing fast. Note that zero cannot be the true address of a label,
since we never generate instructions there.
(commit: 43323d2)
The file was modified compiler/codegen/Relocation.hpp (diff)
The file was modified compiler/codegen/Relocation.cpp (diff)
Commit 8d357975be4052b41ac49e9744fa49be218308b7 by Rahil Shah
Improve registerExchange API on Z

When assigning virtual register to target real register while assigning
registers for instruction, register exchange API which would take care
of care of making exchange between the target real register and current
assigned register bails out when faced with different sized register and
falls back to the path where we would need spare register to satisfy the
requirement. This would cause an issue where we run out of all the
registers.
In order to make exchange between target real register and current
assigned register, if either one is 64-bit, we can simply use 8 byte
spill slot to do that. This commit upgrades the register exchange API to
do that.

Fixes: https://github.com/eclipse-openj9/openj9/issues/12789

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 8d35797)
The file was modified compiler/z/codegen/OMRMachine.cpp (diff)
Commit 27960a0795d4ebc14ed4ce0cf52d3ab12fdef7f4 by Kazuhiro Konno
AArch64: Use the immediate offset of ldr/str instructions

This commit changes populateMemoryReference() so that the compiler
generates ldr/str instructions with constant immediate offsets in
accessing arrays with constant indexes.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 27960a0)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
Commit 31a3582fb41658ea38911cfc2a1b5591e2a23573 by Akira Saitoh
AArch64: Use negated constant value for add/sub node if it is more concise

This commit changes `genericBinaryEvaluator` to use negated value for add/sub
operation if the negated value can be loaded into the register with the fewer
instructions than original value.
Also, `genericBinaryEvaluator` is changed to set a register to the constant node
if the constant cannot be encoded into the instruction and the negated value is not used.
This change prevents constant loading instructions from generated multiple times
even if the constant node has multiple reference counts.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 31a3582)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
Commit 51c9c511eaa69f144d7e9e66be4b0a545b0dd54d by noreply
Revert "Add new core dump tool for OSX"
(commit: 51c9c51)
The file was removedport/osx/omrosdump.c
Commit 153d75bf5f29c06b6f336dba586b52303cb7ebe7 by Akira Saitoh
AArch64: Use mov bitmask immediate instruction if possible

This commit introduces ARM64Trg1ZeroImmInstruction class
which is required to use `mov` (bitmask immediate) instruction.
Also, loadConstant32 and loadConstant64 helper functions are
changed to use that instruction if useful.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 153d75b)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRInstructionKindEnum.hpp (diff)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
Commit dfb3ccece799cd63a2f108bf66bda67a6c964026 by Gita Koblents
Copy node's children early in OMR::Node::copyValidProperties
   - copy node's children early in case the node has typeless opcode
(commit: dfb3cce)
The file was modified compiler/il/OMRNode.cpp (diff)
Commit 9d28ed0bb23173670db4fcc0f584c7358ce0a196 by Oussama Saoudi
Modified Concurrent Scavenger conditions to use compiler optimization

Rason for condition change:
- allowDuplicate bool only set to true if CS is enabled. Compiler
can skip condition check for allowDuplicate if
OMR_GC_CONCURRENT_SCAVENGER is enabled but CS is disabled.
- nested if-forwarding-succeeded check succeeds in forwarding
the object if CS is disabled. This is for the case
OMR_GC_CONCURRENT_SCAVENGER but CS is disabled. Compiler can
go directly into succeeded logic
- if OMR_GC_CONCURRENT_SCAVENGER enabled but CS is disabled,
there's no need to check allowDuplicateOrConcurrentDisabled,
so we skip the block.

Signed-off-by: Oussama Saoudi <oussama.saoudi@ibm.com>
(commit: 9d28ed0)
The file was modified gc/base/standard/Scavenger.cpp (diff)
Commit 3eb74bc9a9e8db047c84655573ed0d3e79c4cfcd by tao guan
Remove self included header

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 3eb74bc)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit 79f2da9f2e08f34eaf454bd97bdc00143d2ecfe9 by Gita Koblents
Add IfVectorAPI optimizer flag

This flag will be needed to add extra passes to optimization
strategies required for VectorAPIExpansion
(commit: 79f2da9)
The file was modified compiler/il/OMRMethodSymbol.hpp (diff)
The file was modified compiler/il/OMRResolvedMethodSymbol.hpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.hpp (diff)
Commit abea738799c11a984ddb42c2ee9fc9f267f6ec4a by Cedric Hansen
Cleanup softmx check and apply softmx to nursery expansion

At the moment, heap expansion logic allows nursery size to expand well beyond the softmx limit. Additionally, when the total heap size was above the softmx size, the softmx size was effectively ignored.

This PR fixes both behaviours mentioned above, and makes softmx limit apply to both nursery and tenure (ie, tenure + nursery < softmx).

Additionally, this PR does the following:
- simplified initialization of `desiredContractionFactor` and  `adjustedContractionFactor` in `MemorySubSpaceSemiSpace::checkSubSpaceMemoryPostCollectResize()`. Same idea for `desiredExpansionFactor` and `adjustedExpansionFactor` just above
- refactoring `if(` to `if (`(with space) and `){` to `) {` (with space) in `MemorySubSpaceSemiSpace` and `MemorySubSpaceUnispace`

This PR is a continuation of #5728. Please see it for initial PR feedback on the initial set of changes that was done

Signed-off-by: Cedric Hansen cedric.hansen@ibm.com
(commit: abea738)
The file was modified gc/base/MemorySubSpace.hpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.cpp (diff)
The file was modified include_core/omrgcconsts.h (diff)
The file was modified gc/base/gcutils.cpp (diff)
The file was modified gc/base/Heap.cpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.cpp (diff)
The file was modified gc/base/Heap.hpp (diff)
The file was modified gc/base/MemorySubSpace.cpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.hpp (diff)
Commit 3de8d56c50295ac89f173ab3b7e8a606acba314a by Gita Koblents
Add disableForceInlineAnnotations JIT command line option

This option will be used to disable recognition of
the ForceInline annotation by the Inliner
(commit: 3de8d56)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 68b457010dca9f992b2958764b7ac763ff91a2fd by Akira Saitoh
AArch64: Add helpers for interface PIC

Add helpers for interface call dynamic PIC.

Co-authored-by: KONNO Kazuhiro <konno@jp.ibm.com>
Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 68b4570)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 7ca2d34761038897cf564f27cbbd409f6e5dc014 by Jan Vrany
RISC-V: fix ctor of S-type instruction to respect preceding instruction
(commit: 7ca2d34)
The file was modified compiler/riscv/codegen/RVInstruction.hpp (diff)
Commit 479d1980eee5a9f72270f24bbde7059f110fcb83 by Kazuhiro Konno
AArch64: Implement arraycopyEvaluator() for primitive arraycopy

This commit implements arraycopyEvaluator() and related functions
for primitive arraycopy for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 479d198)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 73d89ab5bc815be3c15eb31c3ca63337cfe68217 by noreply
Revert "Cleanup softmx check and apply softmx to nursery expansion"
(commit: 73d89ab)
The file was modified gc/base/MemorySubSpaceUniSpace.cpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.hpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.cpp (diff)
The file was modified gc/base/Heap.cpp (diff)
The file was modified gc/base/MemorySubSpace.hpp (diff)
The file was modified include_core/omrgcconsts.h (diff)
The file was modified gc/base/MemorySubSpace.cpp (diff)
The file was modified gc/base/gcutils.cpp (diff)
The file was modified gc/base/Heap.hpp (diff)
Commit 14d65590bc2b58d34e67c402b6284636388cb15e by Kazuhiro Konno
AArch64: Implement reference arraycopy

This commit implements reference arraycopy for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 14d6559)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 9a92eee9dcd6636a2b8e16a5e8b286f70000e880 by Keith W. Campbell
Interpret field offsets in 'block' forms as expressions

Using the GNU compiler option '-gdwarf-2' means that field offset
expressions cannot use 'DW_FORM_exprloc' because that form was not
introduced until DWARF version 4; so the compiler instead uses
'DW_FORM_block*'.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 9a92eee)
The file was modified ddr/lib/ddr-scanner/dwarf/DwarfFunctions.cpp (diff)
The file was modified ddr/lib/ddr-scanner/dwarf/DwarfScanner.cpp (diff)
Commit cc0a9b8f711a86475ebeb93c1551701fcdb35b93 by Devin Papineau
Define compiler string formatting utilities

- TR::[v]printfLen(): return the length of the formatted string without
  writing the string into any buffer

- TR::[v]snprintfTrunc(): format into a fixed-size buffer, possibly
  truncating

- TR::[v]snprintfNoTrunc(): format into a fixed-size buffer with an
  assertion that the result is not truncated

- TR::StringBuf: a reusable growable Region-allocated buffer into which
  formatted text can be appended using [v]appendf()

These obviate the MSVC conditional snprintf #define at use sites, and
they deal with the portability concerns of that #define correctly and in
a centralized place. Additionally, StringBuf makes it simple to allocate
enough memory to do formatting without truncation.
(commit: cc0a9b8)
The file was addedcompiler/infra/String.hpp
The file was modified compiler/infra/CMakeLists.txt (diff)
The file was modified compiler/control/CompileMethod.cpp (diff)
The file was addedcompiler/infra/String.cpp
The file was modified compiler/ilgen/OMRMethodBuilder.cpp (diff)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
Commit 6826ce32fd8f4144315d1f801cee4389fb7c1475 by Gita Koblents
Add -Xjit disableVectorAPIExpansion and traceVectorAPIExpansion options

These options will be used for disabling and tracing VectorAPIExpansion
optimization
(commit: 6826ce3)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit c83840b89ff413bec9d9441a71033850d0876268 by Irwin D'Souza
Remove the TR_AOT option

The TR_AOT option is legacy code; generally whether or not to AOT (in
downstream projects) is controlled by a runtime option rather than an
-Xjit or -Xaot option.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: c83840b)
The file was modified compiler/arm/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/arm/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/p/codegen/PPCAOTRelocation.cpp (diff)
Commit 2446d4e463f137cb45212ed585ddee0b203620d7 by Irwin D'Souza
Remove TR_DisableCompilationThread option

This option is unused in OMR, and is deprecated in OpenJ9.

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 2446d4e)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 1818cb10df73ff42e54e21dbc0a2246e6e504ae2 by Rahil Shah
Fold VFTLoad from object of known fixed class

When we are loading VFT pointer from an object whose
type is known and fixed, we can transform such indirect
load to load constant.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: 1818cb1)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 75629a87c7981a90a73a8d2c4c36faff6b8b709a by Irwin D'Souza
Update Copyrights

Signed-off-by: Irwin D'Souza <dsouzai.gh@gmail.com>
(commit: 75629a8)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/p/codegen/PPCAOTRelocation.cpp (diff)
Commit f79041a2667d5a320edea00110fe773433e66f32 by Gita Koblents
Reset _defMergedNodes in global VP on every basic block

_defMergedNodes is supposed to keep track of commonned nodes.
So it's safe to reset it on every basic block. Also add an assert
that there are no extended blocks during global VP.
(commit: f79041a)
The file was modified compiler/optimizer/OMRValuePropagation.cpp (diff)
Commit 2d4ba0704442236384171700c039381c2c4b8bb4 by Keith W. Campbell
Trim trailing whitespace

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 2d4ba07)
The file was modified azure-pipelines.yml (diff)
Commit 445d19aeb11662ee3247977dae7f1ee38def12e5 by Keith W. Campbell
Fix compiler warnings

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 445d19a)
The file was modified compiler/ras/Debug.hpp (diff)
The file was modified compiler/env/FrontEnd.hpp (diff)
Commit 35a2b5f70f53dc3d30ab1283247c8f45e8208695 by Keith W. Campbell
Add job to check line-endings

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 35a2b5f)
The file was modified azure-pipelines.yml (diff)
Commit ba6f751c6db16be703ad74781560fe23dd4061c3 by Rahil Shah
Disable transforming VFTLoad to loadaddr on Power for nonSVM AOT

Due to missing external relocation record, disable transforming VFT load
of known object with fixed class to loadaddr on Power when compiling
relocatable code without Symbol Validation Manager.

Signed-off-by: Rahil Shah <rahil@ca.ibm.com>
(commit: ba6f751)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 02187e16dddd8a8980dbe6a35c9bc03f54418512 by Salman Rana
ConcurrentGC Heap/Tenure Expand Fix

Fixes https://github.com/eclipse-openj9/openj9/issues/13206

This change switches the order between updating INIT table (tuneToHeap
call) and setting mark bits in place. This way, we guarantee that MM
bits are set in place when we miss to update INIT table (or it's not
updated in time) given overlap of KO and Tenure Expand.

The issue being resolved is similar to what has been outlined in a
previous issue
[https://github.com/eclipse-openj9/openj9/issues/8020#issuecomment-573843125],
where Mark Map Bits get missed for init. Here, we have another similar
timing hole, when one thread kicks off concurrent, Concurrent_OFF ->
(Concurrent_INIT or INIT Complete), while the expanding thread is in
middle of heapReconfigured.

With the original ordering of heapReconfigured, we first attempt to set
the mark bits in place when Concurrent is ON. With Concurrent_OFF, we
delay setting the bits until Concurrent_INIT. This requires update to
the init table. Hence, for Concurrent_OFF we forgo setting bits and
update the init table, we will expect `tuneToHeap` to do
`determineInitRanges` to update init ranges table. The issue occurs when
we don't set mark bits in place (given concurrent_OFF) but concurrent
starts after the check and prior to updating the init ranges. Here,we
either don't update init table (since init is in progress) or miss to
update it in time.

With these changes of reordering heapReonfig, we will try to set mark
bits in place only after check to update init range table. With this,
any state transitions resulting in init table not being updated (or
being updated to late) will be caught and accounted for as bits will be
set after.

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 02187e1)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
The file was modified gc/base/standard/ConcurrentGCIncrementalUpdate.cpp (diff)
Commit 641a90a745f9006a2e704e164c7319b1ff87b711 by Annabelle Huo
Add document on Loop Canonicalizer and Loop Versioner

This document captures the topics on Loop Canonicalizer
and Loop Versioner Vijay presented in a meeting.

Co-Authored-By: Vijay Sundaresan <vijaysun@ca.ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 641a90a)
The file was addeddoc/compiler/optimizer/IntroLoopOptimizations.md
Commit c69f117564e4a19d678e77dfd0f21d26135586ef by Jan Vrany
RISC-V: implement areturn evaluator

We cannot simply use lreturn evaluator since areturn *must* use
TR_ObjectReturn as return info even though on RV64 both as 64bits.
(commit: c69f117)
The file was modified compiler/riscv/codegen/ControlFlowEvaluator.cpp (diff)
The file was modified compiler/riscv/codegen/OMRTreeEvaluator.cpp (diff)
Commit ee53df8b85895a597f8cd660bc1ed6b4ee5e06ba by Filip Jeremic
Fix CCN8924

The warning complains about passing an argument of non-POD type through
the following helper defined by Google Test:

```
static char (&Helper(...))[2];  // NOLINT
```

xlC for some reason does not like passing the non-POD type through this
helper, although it appears to work correctly. This helper is used for
statically determining whether types are implicitly covertable so all
we care about is whether `sizeof` this helper is 1 or 2. Whether the
type is passed through elipsis or as a parameter does not matter in this
case and hence we can just silence the warning on xlC.

```
CCN8924 (W) Cannot pass an argument of non-POD class type "const ASTNodeArg" through ellipsis.
```
(commit: ee53df8)
The file was modified fvtest/tril/test/ASTTest.cpp (diff)
The file was modified third_party/gtest-1.8.0/include/gtest/internal/gtest-internal.h (diff)
Commit a04804fb71f30620f0c08fac2efa082b0092b1cb by Filip Jeremic
Enable warnings as errors in compiler component on S390
(commit: a04804f)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
The file was modified jitbuilder/CMakeLists.txt (diff)
Commit 93096378f679ad033eb98e2edde4c85249c1a8ac by Filip Jeremic
Fix CCN3296

If we are building using the native codepage (EBCDIC) we do not need to
include this header. Otherwise `OMR_EBCDIC` will be defined and we will
be linking with the atoe library so this header will be on the include
path and we can safely include it.

```
WARNING CCN3296 /openzdk/jenkins/workspace/Build/port/unix_include/omriconvhelpers.h:38    #include file "atoe.h" not found.
```
(commit: 9309637)
The file was modified port/unix/omrfiletext.c (diff)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/zos390/omrsysinfo_helpers.c (diff)
The file was modified port/zos390/omrsyslog.c (diff)
The file was modified port/zos390/omrzfs.c (diff)
The file was modified port/zos390/omrgetjobname.c (diff)
The file was modified port/zos390/omrosdump.c (diff)
The file was modified port/common/omrfilestream.c (diff)
The file was modified port/unix/omrsharedhelper.c (diff)
The file was modified port/common/omrfilestreamtext.c (diff)
The file was modified port/zos390/omrgetuserid.c (diff)
The file was modified port/unix_include/omriconvhelpers.h (diff)
Commit 0563b80eb01279167451da3d83be1006df466591 by Filip Jeremic
Fix ASMA140W

```
ASMA140W END record missing
```
(commit: 0563b80)
The file was modified port/zos390/omruserid.s (diff)
The file was modified port/zos390/omrjobname.s (diff)
The file was modified port/zos390/omrgetstfle64.s (diff)
The file was modified util/omrutil/unix/zos/omrgetdsa.s (diff)
Commit 859c4bfec2afe8973c7c3d674e5c586e7871cd60 by Filip Jeremic
Fix CCN3068

```
WARNING CCN3068 /u/jenkins/fjeremic/omr/port/zos390/omrsyslog.c:108   Operation between types "char*" and "const char*" is not allowed.
```
(commit: 859c4bf)
The file was modified port/zos390/omrsyslog.c (diff)
Commit 926386e401ca8ed91bc80a2e7c086f1942f984fa by Filip Jeremic
Fix CCN3280

```
WARNING CCN3280 /u/jenkins/fjeremic/omr/thread/common/thrprof.c:245   Function argument assignment between types "unsigned int*" and "int*" is not allowed.
```
(commit: 926386e)
The file was modified util/omrutil/gettimebase.c (diff)
The file was modified thread/common/thrprof.c (diff)
Commit cc1d0566f73bbc5f1614dbbef1a44708b7c13fea by Filip Jeremic
Rename LightweightNonReentrantReaderWriterLock to avoid HLASM errors

If the file name of the compilation unit is greater than 38 characters
and the compilation unit uses inline assembly HLASM will fail with the
following message:

```
INFORMATIONAL CCN1149: Inline assembly statements caused HLASM RC=4 with the following messages:
WARNING CCN1150: Inline assembly statements caused HLASM RC=4.
```

The listing file says the assembler has succeeded so this error message
is quite puzzling and seems to go away when the file name is shortened.
It is likely the CSECT name is too long for HLASM to handle, although
changing the CSECT name does not alleviate the problem.

The simplest solution seems to be to truncate the name a little bit
which is what we've done here.
(commit: cc1d056)
The file was removedgc/base/LightweightNonReentrantReaderWriterLock.cpp
The file was addedgc/base/LightweightNonReentrantRWLock.cpp
The file was removedgc/base/LightweightNonReentrantReaderWriterLock.hpp
The file was modified gc/CMakeLists.txt (diff)
The file was addedgc/base/LightweightNonReentrantRWLock.hpp
The file was modified gc/base/HeapRegionManager.hpp (diff)
Commit 13463c9c1ca0219a78184e9c3311ef95f54009d8 by Filip Jeremic
Treat warnings as errors on z/OS xlC v2.2

The z/OS xlC v2.2 compiler does not support the `-Werror` option that is
available starting with the v2.3 compiler version. Instead it does
support the `-qhalt=4` option which according to the documentation:

> Stops compilation process of a set of source code before producing any
> object, executable, or assembler source ®les if the maximum severity
> of compile-time messages equals or exceeds the severity specified for
> this option.

Adding this option to the command line unfortunately does not achieve
the desired effect of enabling warnings as errors since compilations
appear to complete with rc=0. The reason for this is because `HALT` is
a batch option, not a USS one. To get the desired effect we have to
specify two environment variables which when active will treat warnings
as errors and return a non-zero return code. The two options are:

```
export _C89_ACCEPTABLE_RC=0
export _CXX_ACCEPTABLE_RC=0
```

for C and C++ respectively. Until we can upgrade to the v2.3 compiler we
have to run with these environment variables active to get the desired
effect.
(commit: 13463c9)
The file was modified buildenv/jenkins/omrbuild.groovy (diff)
Commit bccc42a68fba8cc47c94233f1b98ac996273c08b by Kazuhiro Konno
AArch64: Change generation of "mov" instruction in register assignment

This commit changes code generation of GPR-to-GPR "mov" instruction
in registerCopy() in register assignment for AArch64.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: bccc42a)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)
Commit 1cccf1baf251183ca01fcda5742f0be683b1f295 by Abdulrahman Alattas
Ensure correct instr construction with neg imm using AIX Assembler

The AIX assembler perform bitwise-and then negate the value when
`dq` is a negative value with a `-` sign. The pranthases ensure
negating the immediate before performing the and operation.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: 1cccf1b)
The file was modified compiler/p/runtime/ppcasmdefines.inc (diff)
Commit c7cb08273787b1422a4cef4ed5b356bac77d8c2d by Daryl Maier
Cache known object info on TR::Nodes

Allow known object information to be associated with arbitrary nodes.
This will permit more accurate association of refined known object
info, and allow it to be placed on arbitrary nodes.

A new 32-bit bit field is added to the Node class in the padding
space between two fields.  This incurs no TR::Node footprint increase
on 64-bit architectures.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: c7cb082)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/il/OMRNode.hpp (diff)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/optimizer/PartialRedundancy.cpp (diff)
Commit 266d49d48d6b75f54b52cc2cf6f0938bd50501f5 by Jonathan Oommen
Fix GC scavengerScanOrdering Not Initialized Correctly

Fix GC scavengerScanOrdering not initialized correctly
when gc policy is gencon and splitFreeListSplitAmount is
specified to be a value other than zero.

Signed-off-by: Jonathan Oommen <jon.oommen@gmail.com>
(commit: 266d49d)
The file was modified gc/base/Configuration.cpp (diff)
Commit 61f1845a6d10629f27e6001432e4651bc3be8b06 by Nazim Bhuiyan
Add symbol for J9JNIMethodID.vtableIndex field

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 61f1845)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
Commit 2805e952d5b1447249ea2b3a4687c1c1861f0854 by Nazim Bhuiyan
Prevent compacting NULLCHKs into computed call trees

Compacting NULLCHK into computed calls will result in the NULLCHK
notbeing performed before dispatching into the call target if
there is no need for dereferencing of the reference child to
dispatch.

Also includes some formatting fixes.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 2805e95)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
Commit a8267dd0f7874e85d30eac4022fd6b9ed213c38f by Nazim Bhuiyan
Remove redundant code in CompactNullChecks implementation

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: a8267dd)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
Commit 8efff881bbabc24ce6e7e759ded0c77816bf4e8e by Devin Papineau
Disable verifyGlobalIndices()

Disable verifyGlobalIndices() by default because the allocation below of
nodesByGlobalIndex exposes a leak in TR::Region / TR::SegmentProvider
when there are many nodes. This check has been effectively doing nothing
in most builds anyway because it just traverses the trees doing
TR_ASSERT().
(commit: 8efff88)
The file was modified compiler/ras/Tree.cpp (diff)
Commit 76338d7095afe90fad0213baf78826a629c507bb by Daryl Maier
Add setter for TR::Options::_bigCalleeScorchingOptThreshold

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 76338d7)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit 0175216e5787f0f066bb31b5694e11b7a7abf41f by Henry Zongaro
Define nonNullableArrayNullStoreCheck non-helper symbol

Downstream projects might define classes that do not permit null
references.  This change defines a non-helper symbol that takes an array
reference and a value reference as arguments.  A downstream project can
use this as a placeholder for a check of whether  the component type of
an array is a class that does not permit null references, and if so,
whether the value that is being assigned to an element of the array is
a null reference.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 0175216)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
The file was modified compiler/il/Aliases.cpp (diff)
Commit 347c24460795439f2e7e23463a9fdd74c8b75f74 by Akira Saitoh
AArch64: Add relocation record for second child of ifacmpeq/ifacmpne

A relocation record for class or method pointer in the second child of
`ifacmpeq`/`ifampne` is missing if the constant value of it can be
encoded into 12bit immediate field.
This commit adds a relocation record for it by evaluating the node
if it needs relocation.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 347c244)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
Commit faac72459f953ba7f89e30bbe8d0a97be8846525 by Enson Guo
Move timestamps in `ScavengerStats` to `Collector`

Move `_start/_endTime` from `MM_ScavengerStats`
to `MM_Scavenger` and rename to `_cycleStart/End`.

Rename `MM_MemorySubSpaceSemiSpace::_lastScavengeEndTime`
to `_lastGCEndTime`

Rename `MM_ScavengerStats::_workerScavengeStart/EndTime`
to `_start/endTime`

Add `incrementStart/EndTime` to `MM_LocalGCEndEvent`

Signed-off-by: Enson Guo <enson.guo@ibm.com>
(commit: faac724)
The file was modified gc/stats/ScavengerStats.cpp (diff)
The file was modified gc/base/omrmmprivate.hdf (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff)
The file was modified gc/include/omrmm.hdf (diff)
The file was modified gc/stats/ScavengerStats.hpp (diff)
The file was modified gc/stats/ConcurrentMarkPhaseStats.hpp (diff)
The file was modified gc/stats/ConcurrentPhaseStatsBase.hpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.cpp (diff)
The file was modified gc/base/standard/Scavenger.cpp (diff)
The file was modified gc/base/standard/Scavenger.hpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.hpp (diff)
Commit c3e28ceaac1a36c2b6940a15cf73933eeb0cc394 by Mohammad Nazmul Alam
Enable lxvh8x instruction for PPC

This commit enables lxvh8x vector instruction for PPC.
(commit: c3e28ce)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
Commit cee45b6b38aa5e4762410c22cc05ff928d476ac6 by Henry Zongaro
Check whether relocations are needed for debug counters

Code was unconditionally adding relocation records for debug counters
without first checking that they are required.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: cee45b6)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/x/codegen/X86BinaryEncoding.cpp (diff)
Commit d064ed6b8be5be099a8a37e67a0f2fec6c9c67a9 by Mike Zhang
Fix unreadable memory segments when writing core

Handle checking the readability of memory segments from vm_region_recurse_64
and writing the readable segments in one step since multiple calls to
mach_vm_read on the same address seems to cause errors.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: d064ed6)
The file was addedport/osx/omrosdump.c
Commit 01fa59591f24261b081fc3abad5eb8a0a634b09d by Filip Jeremic
Fix IEW2646W

Here is the full warning message:

```
IEW2646W 5383 ESD RMODE(24) CONFLICTS WITH USER-SPECIFIED RMODE(ANY) FOR
          SECTION $PRIV00007C CLASS B_TEXT.
FSUM3065 The LINKEDIT step ended with return code 4.
```

Taking command-line for the lnik step of an executable which prints this
message, ex. omrporttest, we can add the `-Wl,MAP` option to print some
debugging diagnostics. From here we can see the offending section:

```
---------------
CLASS  B_TEXT            LENGTH =     2BAC  ATTRIBUTES = CAT,   LOAD, RMODE= 24
                          OFFSET =        0 IN SEGMENT 002     ALIGN = DBLWORD
---------------

  SECTION    CLASS ------- SOURCE --------
   OFFSET   OFFSET  NAME TYPE    LENGTH  DDNAME   SEQ  MEMBER
...
...
              21A0  $PRIV00007C     *  CSECT        10  /000001D  01  omrgetstf-64.s.o
0     21A0     getstfle           LABEL
```

Looking at the contents of this file though we note that the actual
CSECT starts halfway through the file. The fact that the section was
named "$PRIV00007C" must mean that it is referring to the code before
the CSECT. Hence the way to fix this problem is to define the CSECT
right at the start of the file and to define RMODE as ANY since it
defaults to RMODE 24 if it is not specified as per [1].

[1] https://www.ibm.com/docs/en/zos/2.1.0?topic=binder-amode-rmode-attributes
(commit: 01fa595)
The file was modified port/zos390/omrzfs.c (diff)
The file was modified port/common/omrfilestreamtext.c (diff)
The file was modified port/zos390/omrgetjobname.c (diff)
The file was modified port/zos390/omrjobname.s (diff)
The file was modified port/unix/omrfiletext.c (diff)
The file was modified port/common/omrfilestream.c (diff)
The file was modified gc/CMakeLists.txt (diff)
The file was modified util/omrutil/gettimebase.c (diff)
The file was modified gc/base/LightweightNonReentrantRWLock.hpp (diff)
The file was modified util/omrutil/unix/zos/omrgetdsa.s (diff)
The file was modified gc/base/LightweightNonReentrantRWLock.cpp (diff)
The file was modified thread/common/thrprof.c (diff)
The file was modified port/zos390/omrsysinfo_helpers.c (diff)
The file was modified port/zos390/omrgetuserid.c (diff)
The file was modified port/unix/omrsharedhelper.c (diff)
The file was modified gc/base/HeapRegionManager.hpp (diff)
The file was modified port/zos390/omrgetstfle64.s (diff)
The file was modified port/zos390/omrosdump.c (diff)
The file was modified jitbuilder/CMakeLists.txt (diff)
The file was modified port/zos390/omrsyslog.c (diff)
The file was modified port/unix_include/omriconvhelpers.h (diff)
The file was modified port/zos390/omruserid.s (diff)
Commit af8246095b3639ce27436e21de5515707d17f94a by Jackie Midroni
Disable Internal Pointers for PPC under OptServer

To stay consistent with other platforms, internal pointers will be
disabled for PPC under OptServer. They were temporarily re-enabled
due to a 20% regression on WAS and Liberty, but this occurred nearly
seven years ago, so the chances of reproducing it now are low. As
of the time of this commit, further investigation is being done
into Liberty performance, so if this does expose a bug or regression,
it will be caught, and a permanent fix can be implemented.

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: af82460)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
Commit e2a5864623fc075bc63c21ba2a5932961e3e2a8c by Gita Koblents
Handle hasVectorAPI in Inliner and Optimizer
(commit: e2a5864)
The file was modified compiler/optimizer/OMROptimizer.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit 9422643eff5f99b792f8d9d85bd10855bd9d76ff by Akira Saitoh
AArch64: Fix mulConstant32/64 to use correct instrutions

Fix `mulConstant32` and `mulConstant64` to use correct 32bit/64bit variant
of `mov` and `neg` instructions.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 9422643)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
Commit 8af357cf94121c7076a156286518159c42c8cf69 by Bradley Wood
Cleanup strictfp as all fp operations are now strict

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 8af357c)
The file was modified compiler/x/codegen/FPTreeEvaluator.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/optimizer/OMRSimplifierHandlers.cpp (diff)
The file was modified compiler/control/OMROptions.hpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.hpp (diff)
The file was modified compiler/x/codegen/FPCompareAnalyser.cpp (diff)
The file was modified compiler/x/codegen/FPBinaryArithmeticAnalyser.cpp (diff)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
Commit 1575de83e64af81f4c20cd2a8ef469c6ee115389 by Longyu Zhang
Enable code coverage setting
- Generate and archive Code Coverage Files for xlinux, plinux, and zlinux

Signed-off-by: Longyu Zhang <longyu.zhang@ibm.com>
(commit: 1575de8)
The file was modified cmake/modules/platform/toolcfg/gnu.cmake (diff)
Commit a0db673e69c655c6ad8df44a91a5174f94ede6dd by Devin Papineau
Avoid symbol reference sharing for dummy resolved methods

It's possible to encounter an unresolved call, then to resolve its CP
entry in another thread, and finally encounter another call with the
same CP index, which is now resolved. In this situation, sharing is
usually prevented due to the !(resolvedMethod && symRef->isUnresolved())
condition. However, a dummy resolved method does not satisfy
symRef->isUnresolved().

It's important not to share the symbol reference because the dummy
resolved method used in the unresolved case may expect arguments of a
different type or a different number of arguments from the real resolved
method.
(commit: a0db673)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
Commit c31dd09ae5df61fa8b753f835dce9da483c61a2f by Gita Koblents
Improve non-overridden guard optimization in globalVP

- handle direct calls, use call site index and bytecode index to
  find the right call
- sometimes, at the time the guard is seen not all constraints
  are available for the call. Keep a side table that maps call node
  to the corresponding guard and try to eliminate the guard at the
  time the call is encountered
- support multiple guards pointing to the same block
- Check isTheVirtualCallNodeForAGuardedInlinedCall inside getVirtualCallTreeForGuard
(commit: c31dd09)
The file was modified compiler/optimizer/ValuePropagationCommon.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/optimizer/VirtualGuardCoalescer.cpp (diff)
The file was modified compiler/optimizer/OMRValuePropagation.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
Commit 92d97a4002b213b419ae4881638cef374d367b61 by Devin Nakamura
CMake: Fix compile flags on omrgc_tracegen

Ensure that the omr_base compile flags get applied to omrgc_tracegen.
This is important on z/OS to ensure that we get relevant ascii/ebcdic
flags.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: 92d97a4)
The file was modified gc/CMakeLists.txt (diff)
Commit eab73c791e2fa9440116b47445efeeec73a57bd7 by Akira Saitoh
AArch64: Consider snippets size when aborting compilation of huge methods

A workaround for huge methods was introduced in #5819 because the range of
AArch64 conditional branch is +/- 1MB.
This commit enhances the workaround by taking into account the size of
snippets which was disregarded in #5819.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: eab73c7)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit 4d0ca6e9244e04c20334dde4de39b81b581fd3f4 by dmitry-ten
Remove unused constants from the inliner

The constants MIN_PROFILED_CALL_FREQUENCY, TWO_CALL_PROFILED_FREQUENCY,
and MAX_FAN_IN are not used in OMR, thus can be removed and redefined
inside OpenJ9 compilation units that use it.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: 4d0ca6e)
The file was modified compiler/optimizer/Inliner.hpp (diff)
Commit 52016df66713fd7171e1196405c713f1bcac7886 by Devin Papineau
Use TR_ASSERT_FATAL for TR::MemorySegment asserts

...so that they will actually be checked.
(commit: 52016df)
The file was modified compiler/env/MemorySegment.hpp (diff)
Commit 7a3001b9056925dc5e0b3e2e1547a55ed5f0fb4f by Cedric Hansen
Reintroduce 'Cleanup softmx check and apply softmx to nursery expansion'

This reverts commit 73d89ab5bc815be3c15eb31c3ca63337cfe68217.
(The original PR is https://github.com/eclipse/omr/pull/6120 , which includes main descriptions of this change)

Also, this commit includes the following modifications:

- Added assert to make sure `adjustExpansionWithinSoftMax` is never operating on a Generic MemorySubSpace
- Added flags for Tarok MemorySubSpace type

Signed-off-by: Cedric Hansen cedric.hansen@ibm.com
(commit: 7a3001b)
The file was modified gc/base/MemorySubSpace.hpp (diff)
The file was modified gc/base/Heap.hpp (diff)
The file was modified gc/base/MemorySubSpace.cpp (diff)
The file was modified gc/base/gcutils.cpp (diff)
The file was modified gc/base/Heap.cpp (diff)
The file was modified gc/include/MemorySpacesAPI.h (diff)
The file was modified include_core/omrgcconsts.h (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.hpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.cpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.cpp (diff)
Commit f481a5da100f038be60d0cfc476333494888a4f1 by Lin Hu
Fix MPAOL inconsist issue between freeBytes and freeList

inconsist issue caused by missing to update previous free entry
during elimilating free entry due to card alignment, it would
generate gap between previous and current free entry for
recycleHeapChunk, then cause losing free entries. it could trigger
the assertions of gc allocation for balanced gc case.

- updated previous free entry for the case
- additional assertion check in recycleHeapChunk for verifying
the case -- for debugging only.

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: f481a5d)
The file was modified gc/base/MemoryPoolAddressOrderedList.cpp (diff)
Commit 06bf6db6344acc8cd6e66074c205b8ffe0d8d974 by Akira Saitoh
AArch64: Call redoTrampolineReservationIfNecessary() event if label is not null

The commit changes `TR::ARM64ImmSymInstruction::generateBinaryEncoding` to
call `redoTrampolineReservationIfNecessary()` even if label is not null,
which happens when a direct call is done through a snippet.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 06bf6db)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
Commit 0ec3e3df505cfe14aa078c9cdd9d246287ae824f by Shubham Verma
Consolidate binary encoding api for VRR-g,h,i

`TR::S390VRRInstruction::generateBinaryEncoding()` has been updated to
generate binary encoding for VRR-g, VRR-h and VRR-i. We can now delegate
the encoding work to the parent class.

Signed-off-by: Shubham Verma <shubhamv.sv@gmail.com>
(commit: 0ec3e3d)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/z/codegen/S390Instruction.cpp (diff)
Commit b6dbaee6aeef52723e0d6a3c07ea09abaa09ca51 by Cedric Hansen
Adding Concurrent Mark timing stats in ConcurrentPhaseStatsBase, and additional flags for heap resizing

This change introduces several flags which are used to keep track of Concurrent marking work timing/cost.
This change also introduces a handful of flags which can be used by the GC to improve heap resizing.

- `_concurrentMarkProcessStartTime` keeps track of the cpu time for a concurrent mark increment
- Added additional flags for heap expansion and contraction.
- Added `MM_HeapSizingData`. This struct keeps track of several key characteristics that can be used by a GC to resize the heap
- changed `heapExpansionGCTimeThreshold` and `heapContractionGCTimeThreshold` to `MM_UserSpecifiedParameterUDATA`. Renamed the fields to `heapExpansionGCRatioThreshold` and `heapContractionGCRatioThreshold` respectively. Doing this allows each GC policy to configure their own defaults.
- `dnssExpectedTimeRatioMaximum` and `dnssExpectedTimeRatioMinimum` has been changed in the same way as described for `heapExpansionGCTimeThreshold`
- Introduction of `tarokTargetMaxPauseTime`. This will serve as the default pause time target for certain GC policies in which a target pause time will be used
- `reportHeapResizeAttempt()` now takes a memoryType param. This allows GC policies which are resizing logical spaces to print a `heap-resize` line for those logical spaces
- Introduced several tracepoints

Mostly unrelated to the main work in this PR, the following utility function has been added
- `MM_Math::weightedAverage()` for doubles has been added

This PR does not contain any functional/behavioural changes to the GC

Finally, a follow up PR should be performed, which does the following:
- `Trc_MM_MemorySubSpaceTarok_calculateExpandSize_Exit1` should be made obsolete
- `Trc_MM_MemorySubSpaceTarok_calculateTargetContractSize_Entry` should be made obsolete
- `dnssExpectedTimeRatioMaximum/Minimum` should be removed, while `dnssExpectedRatioMaximum/Minimum` should be kept
- `heapExpansionGCTimeThreshold` and `heapContractionGCTimeThreshold` should be removed, and `heapExpansionGCRatioThreshold` and `heapContractionGCRatioThreshold` should be kept.

Signed-off-by: Cedric Hansen <cedric.hansen@ibm.com>
(commit: b6dbaee)
The file was modified gc/stats/GlobalVLHGCStats.hpp (diff)
The file was modified gc/base/Math.hpp (diff)
The file was modified gc/base/standard/ConfigurationStandard.cpp (diff)
The file was modified gc/base/MemorySubSpaceUniSpace.cpp (diff)
The file was modified gc/base/Math.cpp (diff)
The file was modified gc/base/MemorySubSpaceSemiSpace.cpp (diff)
The file was modified gc/base/MemorySubSpace.cpp (diff)
The file was modified include_core/omrgcconsts.h (diff)
The file was modified gc/base/j9mm.tdf (diff)
The file was modified gc/base/MemoryPoolLargeObjects.cpp (diff)
The file was modified gc/base/standard/ConfigurationGenerational.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/gcutils.cpp (diff)
The file was modified gc/base/standard/ConfigurationGenerational.hpp (diff)
The file was modified gc/stats/ConcurrentPhaseStatsBase.hpp (diff)
The file was modified gc/base/MemorySubSpace.hpp (diff)
Commit c5451743269cd4875afdfd5c7d05e27fe7002041 by Annabelle Huo
Add documentation on Loop Specializer

This document captures the topics on Loop Specializer
Vijay presented in a meeting.

Co-Authored-By: Vijay Sundaresan <vijaysun@ca.ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: c545174)
The file was modified doc/compiler/optimizer/IntroLoopOptimizations.md (diff)
Commit 9c5fd3ba848c092560bf251ff661c07fc7db129b by Annabelle Huo
Add document on reading compilation log

This document captures the topic on compilation
log that Vijay presented in meetings.
It also uses GC map content from TestarossaWiki.

Co-Authored-By: Vijay Sundaresan <vijaysun@ca.ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 9c5fd3b)
The file was addeddoc/compiler/optimizer/IntroReadLogFile.md
Commit aac1e0a6053d3d0df157c74bf0777fcab866bacd by Akira Saitoh
AArch64: Block registers in regdeps when assigning register for branch instructions

When assigning registers for `cbz/cbnz` instructions, a real register specified
in the register dependencies can be unintentionally assigned to the source register.
This commit changes `assignRegister` functions to block registers in the register
dependencies before assigning the source register.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: aac1e0a)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
Commit 05ff62ad12052884ce050ab00b90dba57a8dc8a8 by Akira Saitoh
AArch64: Correctly handle ificmpeq/ificmpne nodes with many global registers

Correctly count the integer or address child nodes added to GlRegDeps node
to avoid adding too many integer registers to the register dependencies.
Add a src register of compare branch instructions to register dependencies
so that a src register is assigned when other registers in the register dependencies
are assigned.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 05ff62a)
The file was modified compiler/aarch64/codegen/ControlFlowEvaluator.cpp (diff)
Commit df2f617aed7bc27add85fca7cdf4681397ba5f09 by Abdulrahman Alattas
Add an unresolved check for mapOpCode() P10 prefix-instr mapping

The current code for patching unresolved addresses does not handles
P10's 8byte prefix instructions, this commit adds a check to mapOpCode
to not map memory instruction to prefix-instr in P10 if the reference
is to an unresolved symbol.

Signed-off-by: Abdulrahman Alattas <rmnattas@gmail.com>
(commit: df2f617)
The file was modified compiler/p/codegen/OMRMemoryReference.cpp (diff)
Commit 83b9348801a3e62945aaa7a3b8cb57bc9c159727 by Dhruv Chopra
Restrict rotate instruction optimization for land nodes

This commit limits an optimization in the z codegen that tries
to perform a shift + land operation using a single rotate instruction.
The optimization skips the evaluation of the land node but evaluates its
children. If the reference count of the land node > 1, then this can
result in the code generator double decrementing the land node's children.
This commit restricts this optimization to when the land node's ref count
is equal to 1 so that the above described scenario is no longer possible.

Signed-off-by: Dhruv Chopra <Dhruv.C.Chopra@ibm.com>
(commit: 83b9348)
The file was modified compiler/z/codegen/BinaryEvaluator.cpp (diff)
Commit aaa00fc4e347911e5dac4c693e0ac75b27930d26 by Kevin Langman
Prevent a SOF in TR_InductionVariableAnalysis::getEntryValue()

In extreme cases the recursion in getEntryValue() can cause a SOF
when compiling large methods. This change will prevent the SOF by
introducing a depth parameter that will prevent the recursion from
exceeding a maximum depth and therefore preventing a SOF condition.

Signed-off-by: Kevin Langman <langman@ca.ibm.com>
(commit: aaa00fc)
The file was modified compiler/optimizer/InductionVariable.hpp (diff)
The file was modified compiler/optimizer/InductionVariable.cpp (diff)
Commit 52c3841fa7121273a444965f8e6bcae8d7382aa2 by Cedric Hansen
Follow up to #5825

This commit contains the follow up items from https://github.com/eclipse/omr/pull/5825

This includes:
- making `Trc_MM_MemorySubSpaceTarok_calculateExpandSize_Exit1` and `Trc_MM_MemorySubSpaceTarok_calculateTargetContractSize_Entry` obsolete
- `dnssExpectedTimeRatioMaximum` and `dnssExpectedTimeRatioMinimum` were removed, since they are no longer used. The newer version (dnssExpectedRatioMaximum/Minimum) are more flexible for different GC policies
- `heapExpansionGCTimeThreshold` and `heapContractionGCTimeThreshold` were removed, since they are no longer used. The newer versions (`heapExpansionGCRatioThreshold` and `heapContractionGCRatioThreshold`) are more flexible for different GC policies

Signed-off-by: Cedric Hansen <cedric.hansen@ibm.com>
(commit: 52c3841)
The file was modified gc/stats/GlobalVLHGCStats.hpp (diff)
The file was modified gc/base/j9mm.tdf (diff)
The file was modified gc/base/standard/ConfigurationStandard.cpp (diff)
The file was modified gc/base/standard/ConfigurationGenerational.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
Commit d61d9675ab5aa17c66cea078e7a98b167eb785f7 by Mike Zhang
Allow core dump on OSX to change directories

Core dump utility would previously ignore the directory portions of the path.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: d61d967)
The file was modified port/osx/omrosdump.c (diff)
Commit 6f2a896e9fd234817f38c25e99d8cab2180b9dae by Siri Sahithi Ponangi
AArch64: Adding backward arraycopy implementation

This commit adds inlined backward arraycopy implementation for
constant length.

Signed-off-by: Siri Sahithi Ponangi <sahithi.ponangi@unb.ca>
(commit: 6f2a896)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit 8c150fbef55f36ace19693cd8acfb252d2d5f57c by Kazuhiro Konno
AArch64: Implement ilbit/llbit evaluators

This commit implements ilbit/llbit evaluators.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 8c150fb)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit ff1361201ca3396c2b2bea740effcafc72804776 by Keith W. Campbell
Correct references to omrosdump.c

The implementations are found in omrosdump.c, not omrdump.c.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: ff13612)
The file was modified include_core/omrport.h (diff)
Commit 8cf034e39b02af1d1275b44f5e7405fcb730c647 by Henry Zongaro
Define symbol for new jitAcmpneHelper

The existing jitAcmpHelper symbol can be used in downstream projects to
represent object reference comparisons for equality.  This change
introduces a jitAcmpneHelper symbol to represent inequality comparisons
rather than treating that as a second-class operation requiring negation
to implement.

The change also renames jitAcmpHelper to jitAcmpeqHelper to clarify the
purpose of the existing symbol.  The old symbol name will be retained
until it is no longer being used by downstream projects.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 8cf034e)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/il/Aliases.cpp (diff)
Commit b8b936b9d72ba9686decf62132527136fbd63596 by Kazuhiro Konno
AArch64: Remove a suffix of a double constant

This commit removes a suffix "d" from a double constant in C++ code.
Suffix "f" is used for a float constant, but double constants do not
take any suffix.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: b8b936b)
The file was modified compiler/aarch64/codegen/FPTreeEvaluator.cpp (diff)
Commit 8e294dc27080cd5d2084afe030dc731d25c1414a by Siri Sahithi Ponangi
AArch64: Adding additional arraycopy helper entries

This commit adds additional arraycopy helper entries.

Signed-off-by: Siri Sahithi Ponangi <sahithi.ponangi@unb.ca>
(commit: 8e294dc)
The file was modified compiler/aarch64/runtime/ARM64arrayCopy.spp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit fdb29c502bf0742e74cd060870506c5bd8cfea15 by Lin Hu
New field TLHRemainderCount in CopyForwardStatsCore

Report how many TLHRemainder has been created during CopyForward.

Signed-off-by: Lin Hu <linhu@ca.ibm.com>
(commit: fdb29c5)
The file was modified gc/stats/CopyForwardStatsCore.hpp (diff)
Commit 1aad2a6de568a3e1164e8dd7dff02363e15c4593 by Annabelle Huo
Split _options and _optionString in OptionSet into separate fields

When both AOT and JIT have logs specified and when one is processed
first, the OptionSet._options for the other one has not been set up
properly yet. Since setOptions has not been called for the other
command option, getOptions returns a char pointer to _optionString
that is implicitly casted as TR::Options * because OptionSet._options
and OptionSet._optionString are union. To properly check if
OptionSet._options is valid, it needs to be a separate field.

Fixes #6189

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 1aad2a6)
The file was modified compiler/control/OptionsUtil.hpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
Commit bae713bf5fe159485f8af27f6a4be32bfa5ab7c5 by tao guan
Remove dummy SimpleRegex

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: bae713b)
The file was modified compiler/ras/Tree.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 5891fb4fff3fda76687ec24009b5e4cfb4f16963 by Mike Zhang
Fix core file not generating on OSX

When reading memory segments, reset the return value kr so that the
generated file is not deleted at the end if the last memory segment
throws an error when being read, since mach_vm_read errors are not
fatal.

Also make sure final return value is correct when there is an error.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: 5891fb4)
The file was modified port/osx/omrosdump.c (diff)
Commit 05e5965fac9e72e32063c368367f43129ea08de9 by Keith W. Campbell
Fix uses of BPX4ENV

The last two arguments should be 'RETCODE, RSNCODE',
not two more references to 'RETVAL'.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 05e5965)
The file was modified port/zos390/omrgenerate_ieat_dump.s (diff)
Commit c51edad14cd7dd294f56f40b1b3cf96a6b902289 by Henry Zongaro
Consider guard or instanceof as escape point in Field Privatizer

A reference or store to a field that came from an inlined method might
be guarded by a virtual guard.  In any particular execution of the loop,
such a field might not actually exist in the object that's being
referenced.  To avoid that situation, this change adds a simple check
for the existence of a virtual guard within the loop and considers it
to be an escape point in the containsEscapePoints method.

Similarly, instanceof tests might guard casts that will be used to
access fields that wouldn't necessarily exist every time a loop is
executed, so they are considered escape points as well.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: c51edad)
The file was modified compiler/optimizer/FieldPrivatizer.hpp (diff)
The file was modified compiler/optimizer/FieldPrivatizer.cpp (diff)
Commit 94a74713fcc4cd24d06080b47b5b3d4ead22220e by Henry Zongaro
Remove SupportedForPRE from instanceof for Field Privatizer bug

instanceof operations can be hoisted out of loops by PRE.  This could
expose a bug in Field Privatizer in which a field access that is guarded
might be privatized, resulting in the field being referenced and stored
to unconditionally.

A temporary patch in Field Privatizer checks for uses of instanceof and
null comparisons inside of loops to guard against the conditions that
expose the bug.  This change removes the SupportedForPRE property from
the instanceof operator to prevent its being hoisted out a loop,
avoiding one more situation that could expose the bug.

Once the bug is fixed properly in Field Privatizer, the SupportedForPRE
property will be added back to instanceof.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 94a7471)
The file was modified compiler/il/OMROpcodes.enum (diff)
Commit f9c32ab331eb893f468eb9c1b64949cdf0bfbeb5 by Henry Zongaro
Consider comparisons with null to avoid invalid field privatization

A comparison with a null reference might be used to guard a field
access.  The Field Privatizer does not take such conditional access into
account in deciding whether to privatize a field, which can result in
its unconditionally copying a field's value into a temporary variable by
dereferencing null.

This change adds a very simple check for comparisons with null inside of
a loop to help to guard against that situation.  That will avoid the bug
in most cases, but follow up changes that are more robust, general and
accurate in avoiding the problem are planned.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: f9c32ab)
The file was modified compiler/optimizer/FieldPrivatizer.hpp (diff)
The file was modified compiler/optimizer/FieldPrivatizer.cpp (diff)
Commit e46f68a12619342ba8c5983dd0ebe11e2faf41e7 by Kazuhiro Konno
AArch64: Change symbol/function declarations in .spp files

This commit changes the symbol and function declarations in assembly
files (.spp) for AArch64, for portability purpose.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: e46f68a)
The file was modified compiler/aarch64/runtime/ARM64arrayCopy.spp (diff)
The file was addedcompiler/aarch64/codegen/arm64asmdefs.inc
Commit 16964b6ddfa84d47dbe556aaad2bf6794252b53e by Keith W. Campbell
Move arm64asmdefs.inc to runtime directory

To match expectations of ARM64arrayCopy.spp and for consistency with
other platforms.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 16964b6)
The file was addedcompiler/aarch64/runtime/arm64asmdefs.inc
The file was removedcompiler/aarch64/codegen/arm64asmdefs.inc
Commit 995bc2a9a9100f10c69a32a3ff73e7343c2a1f3a by Henry Zongaro
Define <objectInequalityComparison> non-helper

This change defines a non-helper symbol that can be used by downstream
projects to test a pair of object references for an inequality
comparison.  It is intended to represent the negation of the existing
<objectEqualityComparison> non-helper symbol.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 995bc2a)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
The file was modified compiler/compile/OMRNonHelperSymbols.enum (diff)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
Commit 5ea759ce603e2e486fd6fc5ee3ee32eaa7cb0590 by Henry Zongaro
Handle aliasing of <objectInequalityComparisonSymbol> non-helper

Ensure the aliasing of <objectInequalityComparisonSymbol> in
OMR::SymbolReference::getUseDefAliasesBV is handled in the same way as that
for <objectEqualityComparisonSymbol>.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 5ea759c)
The file was modified compiler/il/Aliases.cpp (diff)
Commit 6e2ab868dcbaaa888e89650a4a1b76a1bc9f5ea8 by Henry Zongaro
Add nonNullableArrayNullStoreCheck to _commonNonHelperSymbolNames

Added the missing entry for <nonNullableArrayNullStoreCheck> to
OMR::SymbolReferenceTable::_commonNonHelperSymbolNames.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 6e2ab86)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
Commit 31a422d47be5caa55a5972b6bf5eff75d992c919 by Devin Papineau
Define TR_jitLookupDynamic[Public]InterfaceMethod JIT helpers

These new JIT helpers are OpenJ9-specific but unfortunately they still
need to be declared here.

The definition of TR_jitLookupDynamicPublicInterfaceMethod uses
TR_newArray+2 instead of TR_jitLookupDynamicInterfaceMethod+1 because
the latter causes s390m4check.pl to complain that there is a "line
longer than 71 characters". It's difficult to add this comment inline
next to the definition itself because Helpers.inc is included directly
into all of the following file types:
- C++ header
- CPP-preprocessed assembly
- m4-preprocessed assembly
(commit: 31a422d)
The file was modified compiler/ras/Debug.cpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit c3dc8a434787285c29f3dfab79f3d8eb04608253 by mpirvuca.ibm.com Pirvu
Add new OptimizationPlan flag called DisableEDO

This commit adds a new flag to the TR_OptimizationPlan data structure,
called DisableEDO. The new flag will be used in an upstream project
to control whether EDO (Exception Directed Optimization) is allowed
for the current compilation.

Signed-off-by: Marius Pirvu <mpirvu@ca.ibm.com>
(commit: c3dc8a4)
The file was modified compiler/control/OptimizationPlan.hpp (diff)
Commit 6be9456c0816f6078e99f2bb42edf12687b1d234 by Devin Papineau
Extract type-intersect-location logic from VPClassType intersection

This logic was repeated for both VPResolvedClass and VPFixedClass, and
conspicuously missing from VPUnresolvedClass.
(commit: 6be9456)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
The file was modified compiler/optimizer/VPConstraint.hpp (diff)
Commit 85d2e953d82911ccb1bce020d15bb88d7b37bbc4 by Devin Papineau
Use a more specific implied location for intersection in VP

Any value known to satisfy the VPClassType constraint is an object, so
it must be a reflective object rather than a VM-internal representation.
(commit: 85d2e95)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
Commit d4ba4d4d296bc76835dbb43d25024a6e4b6f0bc2 by Devin Papineau
Avoid combining a regular type bound with a ClassObject location in VP

...as the intersection of the two constraints. If the type is not
already known to be a ClassObject, then bundling it into a VPClass with
a ClassObject location will incorrectly change the meaning of the type
constraint.
(commit: d4ba4d4)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
Commit 4832e6f9fd67f54c8a9abf31439ac18b0d163669 by Henry Zongaro
Remove redundant definition of TR_acmpHelper

The definition of the helper index TR_acmpHelper was made equal to the
index TR_acmpeqHelper when TR_acmpneHelper was introduced.  Now that
references to TR_acmpHelper have been replaced with TR_acmpeqHelper in
downstream projects, TR_acmpHelper can be removed.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 4832e6f)
The file was modified compiler/runtime/Helpers.inc (diff)
Commit 6af0e7db7d5a70f60e4ac7f6f0512ff3dfa86e16 by tao guan
Remove non-reference members in OMROption.hpp

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 6af0e7d)
The file was modified compiler/control/OMROptions.hpp (diff)
Commit 3baf26416fe00c45bb9080b6eec04eb174413e5e by Bradley Wood
Remove 'assumeStrictFP' JIT option

Signed-off-by: BradleyWood <bradley.wood@ibm.com>
(commit: 3baf264)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 6c39a4325b24596bc1f1e27871180148d1795612 by Annabelle Huo
Add 'Q' prefix handling

Handling for 'Q' prefix is added to places as needed.

Related to eclipse-openj9/openj9#12237

Co-Authored-By: Yiling Han <Yiling.Han@ibm.com>

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 6c39a43)
The file was modified compiler/il/OMRSymbol.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
Commit 3cb8aa1e45914a8eab398115ea64f7f6705e5104 by Akira Saitoh
AArch64: Add convenience functions to generate ubfiz/ubfx instructions

Add convenicence functions for generating ubfiz/ubfx instructions,
which are aliases of ubfm instruction.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 3cb8aa1)
The file was modified compiler/aarch64/codegen/BinaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.hpp (diff)
Commit 59b030d66406a14193d76805107ac91f1baf858b by Kazuhiro Konno
Add support for AArch64 macOS

This commit adds changes for supporting AArch64 macOS.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 59b030d)
The file was modified cmake/modules/platform/os/osx.cmake (diff)
The file was modified port/osx/omrsignal_context.c (diff)
The file was modified cmake/modules/platform/arch/aarch64.cmake (diff)
The file was modified port/osx/omrosdump.c (diff)
The file was modified omrmakefiles/rules.linux.mk (diff)
The file was modified cmake/modules/OmrDetectSystemInformation.cmake (diff)
The file was modified compiler/aarch64/runtime/CodeSync.cpp (diff)
Commit ed1fe4260e37a3b1b9c111c4f40a931a93df9188 by Daryl Maier
Use newer Ubuntu VMs for Azure pipeline jobs

Ubuntu 16.04 is no longer supported.  Use the 18.04 image for the x86-64 Linux
build job, and disable the Linter until it can be made to work on current Ubuntu
levels.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: ed1fe42)
The file was modified azure-pipelines.yml (diff)
Commit 051232d2a9322c35b1b01a7f0033cc7b50f439aa by Keith W. Campbell
Remove useless OMR_THR_TRACING configuration option

Enabling it wouldn't work: for example, it would offer
`omrthread_reset_tracing()` which couldn't exist.

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 051232d)
The file was modified thread/common/omrthread.c (diff)
The file was modified include_core/omrcfg.h.in (diff)
The file was modified include_core/thread_api.h (diff)
The file was modified configure (diff)
The file was modified thread/exports.cmake (diff)
The file was modified cmake/config.cmake (diff)
The file was modified configure.ac (diff)
The file was modified omrmakefiles/configure.mk.in (diff)
The file was modified thread/thread_include.mk (diff)
The file was modified include_core/omrcfg.cmake.h.in (diff)
Commit cbf479d2c14a05bfbbdd4a876604859119d0d88b by Annabelle Huo
Add classNameToSignature to ClassEnv

This will replace the implementation in Aliases.cpp.
This API adds a new default argument `TR_OpaqueClassBlock *`
to be used to check if the class is a value type or not.

Related to #6217

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: cbf479d)
The file was modified compiler/env/OMRClassEnv.cpp (diff)
The file was modified compiler/env/OMRClassEnv.hpp (diff)
Commit 229496b87545d451c60ffebe85fb6bb92206abf7 by Kazuhiro Konno
AArch64 macOS: Implement omrsignal_context.c

This commit implements omrsignal_context.c for AArch64 macOS.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 229496b)
The file was modified port/osx/omrsignal_context.c (diff)
Commit 90d0dc056171a9e691d65d37214303048ed44871 by Annabelle Huo
Replace classNameToSignature with the define in ClassEnv

Related to #6217

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 90d0dc0)
The file was modified compiler/optimizer/LoopVersioner.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/optimizer/Inliner.cpp (diff)
The file was modified compiler/optimizer/LocalOpts.cpp (diff)
The file was modified compiler/optimizer/LocalAnalysis.cpp (diff)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
The file was modified compiler/optimizer/GlobalAnticipatability.cpp (diff)
Commit 37c92a253b0944d62da29c3f6a5c45e865099184 by Annabelle Huo
Remove classNameToSignature

classNameToSignature is moved to ClassEnv.

Closes #6217

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 37c92a2)
The file was modified compiler/il/OMRSymbolReference.hpp (diff)
The file was modified compiler/il/Aliases.cpp (diff)
Commit 9aa824cd79f0288e044e39a89c2e0e4bf7005218 by tao guan
Add build assert for OpenJ9 specific file needing refactoring

Signed-off-by: Tao Guan <james_mango@yahoo.com>
(commit: 9aa824c)
The file was modified compiler/runtime/OMRRuntimeAssumptions.hpp (diff)
Commit dbb4388851947a058ac9f3f8ce2b93c8a7119764 by Keith W. Campbell
Update github URLs for OpenJ9

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: dbb4388)
The file was modified README.md (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
The file was modified doc/compiler/runtime/CodeMetaData.md (diff)
Commit a80b8114365f1f8e9a94c4d90137789ea17a3e7e by Devin Nakamura
CMake: fix /safeseh flag

/safeseh is only a valid linker flag when building an exe or shared lib.
Specifying when building a static library results in a warning.

Signed-off-by: Devin Nakamura <devinn@ca.ibm.com>
(commit: a80b811)
The file was modified cmake/modules/platform/toolcfg/msvc.cmake (diff)
Commit b91736dd918ee255be0e9447eec0ef678f21ab74 by Akira Saitoh
AArch64: Stop using placeholder register for arraycopy

Kill placeholder registers used for register dependencies
at arraycopy helper call.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: b91736d)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
Commit e698c3594f35693d5b18e5ebb31801708108d80f by Akira Saitoh
AArch64: Enable GCR Patching

Enable GCR Patching on aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: e698c35)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 12820d2b3cfc5b7aa18f628ed6deb53d10dd9ab6 by Akira Saitoh
AArch64: Implement Patchable GCRs

This commit implements patchable GCRs on aarch64.
- Add a new helper `patchGCRHelper`.
- Change `bstoreEvaluator` to call out to `patchGCRHelper`.
- Change ARM64Trg1ImmSymInstruction to set immediate value for
adr instruction for gcr-patch-point when generating instructions.
- Change ARM64ZeroSrc1ImmInstruction to set static address of the
gcr-patch-point symbol when generating instructions.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 12820d2)
The file was modified compiler/aarch64/codegen/ARM64BinaryEncoding.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/runtime/Helpers.inc (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/ras/Debug.cpp (diff)
Commit 54a8a2d02e1ba427db2624e1629bb562baeaa8a4 by Akira Saitoh
AArch64: Add a method to kill placeholder registers in registrer dependency

Add a variant of `stopUsingDepRegs` method which takes an array of registers to keep alive.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 54a8a2d)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.hpp (diff)
Commit a54f109ee8242f6843466a00a64cbfa14123925d by Daryl Maier
Remove unused LabelSymbol nullCompilationId

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: a54f109)
The file was modified compiler/il/OMRLabelSymbol.hpp (diff)
Commit 2fc665e497133da1448f75d1c78aa14199d3bc87 by Dmitri Pivkine
Cleaning for OMRPORT_CPU_BOUND

This change does not fix anything patricular but provides general
cleaning of the code:
- size should have type size_t not int32_t
- memory for local variable in c-stack should be zeroed
- remove unnecessary declaration of two variables with the same name

Signed-off-by: Dmitri Pivkine <Dmitri_Pivkine@ca.ibm.com>
(commit: 2fc665e)
The file was modified port/unix/omrsysinfo.c (diff)
Commit a97d723959fd37145ce998b641c1fee801de19ae by Peter Shipton
Port library startup should not return -1

Returning -1 does not give any useful information about what failed.

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: a97d723)
The file was modified port/win64amd/omrsignal.c (diff)
The file was modified include_core/omrporterror.h (diff)
The file was modified port/unix/omrsysinfo.c (diff)
The file was modified port/ztpf/omrsignal.c (diff)
The file was modified port/unix/omrsignal.c (diff)
The file was modified port/win32/omrsignal.c (diff)
Commit 3d87347edc2feca7302ebc5732d715d368b2de82 by Salman Rana
ConcurrentGC Refactoring & SATB Tuning Methods

These changes are to generalize the ConcurrentGC Collector Class so that
it can be used for both IncrementalUpdate and SATB style of Concurrent
Marking. They are a pre-req to introducing SATB since the existing
concurrent collector class is closely tied to Incremental Update
approach. CM enabling functionality needs to be abstracted - card
table/cleaning cards must be extracted to the derived IncrementalUpdate
class. Since there hasn't been any other implementation prior to SATB,
ConcurrentGC has acted as Incremental Update Concurrent Collector, much
of the components (e.g state machine, Initing, Tuning/adaptive
parameters, concurrent state/phases, verbose logging, etc) can be reused
with this rework by extracting card/barrier specific code.

- ConcurrentGC class is now an Abstract Class _(removed newInstance
function)_
- Card cleaning specific adaptive params/factors moved to Incremental
Update
- Common (Generalized) logic & vars given Protected access in Concurrent
GC
- New methods introduced to help common up shared logic
  - signalThreadsToActivateWriteBarrierInternal
  - updateTuningStatisticsInternal
  - resetConcurrentParameters
  - preCompleteConcurrentCycle
  - finalConcurrentPrecollect
  - getTraceTarget

- External WB Entry points now call new collector specific handlers
  - J9ConcurrentWriteBarrierBatchStoreHandler
  - J9ConcurrentWriteBarrierStoreHandler

**Tuning logic Implemented for SATB**
- adjustTraceTarget
- tuneToHeap

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 3d87347)
The file was modified gc/base/standard/ConcurrentGC.hpp (diff)
The file was modified gc/base/standard/ConcurrentGCIncrementalUpdate.cpp (diff)
The file was modified gc/base/standard/ConcurrentGCSATB.cpp (diff)
The file was modified gc/base/standard/ConcurrentGCIncrementalUpdate.hpp (diff)
The file was modified gc/base/standard/ConcurrentGCSATB.hpp (diff)
The file was modified gc/base/standard/ConcurrentOverflow.cpp (diff)
The file was modified gc/base/standard/ConcurrentFinalCleanCardsTask.hpp (diff)
The file was modified gc/base/standard/ConcurrentFinalCleanCardsTask.cpp (diff)
The file was modified gc/verbose/handler_standard/VerboseHandlerOutputStandard.cpp (diff)
The file was modified gc/base/standard/ConcurrentOverflow.hpp (diff)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit 5d0b3c7d5261105e52c6252487dd087f4bb2cbb0 by Kazuhiro Konno
AArch64: Call decReferenceCount() for aladd node

This commit adds a call to decReferenceCount() in
populateMemoryReference() for the case of array access with constant
index.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: 5d0b3c7)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
Commit 735fa5a289d8a77b4e63da6010775688582abef3 by Daryl Maier
Fix LabelSymbol constructor to always require a CodeGenerator

* Remove constructor without `CodeGenerator` parameter
* Replace `TR::comp()` reach inside each constructor with `CodeGenerator` query
* Add missing `_directlyTargeted` field initializaton to all constructors

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 735fa5a)
The file was modified compiler/il/LabelSymbol.hpp (diff)
The file was modified compiler/il/OMRLabelSymbol.hpp (diff)
The file was modified compiler/z/codegen/S390Instruction.hpp (diff)
The file was modified compiler/il/OMRLabelSymbol.cpp (diff)
Commit 771d2c4c44df7d0cbf55cf4c1e573b147148f7f7 by Daryl Maier
Add CodeGenerator parm to LabelSymbol::isPatchBarrier()

Passing in the CodeGenerator object eliminates the need to fetch the
Compilation object from `TR::comp()`.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 771d2c4)
The file was modified compiler/p/codegen/PPCInstruction.hpp (diff)
The file was modified compiler/x/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.cpp (diff)
The file was modified compiler/x/codegen/OMRX86Instruction.hpp (diff)
The file was modified compiler/il/OMRLabelSymbol.hpp (diff)
The file was modified compiler/x/codegen/OMRInstruction.hpp (diff)
The file was modified compiler/il/OMRLabelSymbol.cpp (diff)
Commit f797475791cf5beed65a350b7724ff9a0332b5ec by dmitry-ten
Add a new symbol flag to mark addresses within method bounds

A new flag StaticAddressWithinMethodBounds indicates that an address
stored in a static symbol is inside method bounds, and can be
accessed using RIP addressing during an out-of-process compilation.

Signed-off-by: Dmitry Ten <Dmitry.Ten@ibm.com>
(commit: f797475)
The file was modified compiler/x/amd64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
The file was modified compiler/il/OMRSymbol_inlines.hpp (diff)
The file was modified compiler/il/OMRSymbol.hpp (diff)
Commit 722716643eb97b6f4d6d858d5db922563016d40d by Salman Rana
Non-functional Core SATB Changes

Isolated changes part of Core SATB work. These changes are intended for
next few PRs for SATB.

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 7227166)
The file was modified gc/base/MarkingScheme.cpp (diff)
The file was modified gc/base/EnvironmentBase.cpp (diff)
The file was modified gc/base/standard/WorkPacketsSATB.cpp (diff)
The file was modified gc/base/MarkingScheme.hpp (diff)
The file was modified gc/base/GlobalCollector.hpp (diff)
The file was modified gc/base/ParallelMarkTask.cpp (diff)
The file was modified gc/base/standard/RememberedSetSATB.hpp (diff)
The file was modified gc/base/Packet.hpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.cpp (diff)
The file was modified gc/base/GCExtensionsBase.hpp (diff)
The file was modified gc/base/standard/WorkPacketsSATB.hpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.hpp (diff)
The file was modified gc/base/GCExtensionsBase.cpp (diff)
The file was modified gc/base/ParallelMarkTask.hpp (diff)
Commit 1a1e980f1e960883bca9e09ddf6a5c1a410bbe8d by Devin Papineau
Ensure that created log files' names start with the specified name

Prior to this change, if suffixLogs (i.e. TR_EnablePIDExtension) was
enabled (which by default it is), log files for compilation threads
other than compilation thread 0 would be opened using a name consisting
of only the extra suffix, e.g. ".193310.88163.20211109.150243.193310".

The cause was as follows:

1. When openLogFile() got a valid idSuffix, it would concatenate
   _logFileName with it into a stack buffer (filename).

2. Then when suffixLogs was also enabled, it would use the same stack
   buffer (filename) as the destination for the concatenation of the
   name so far (e.g. foo.log.1) with the PID and time. This was a call
   to sprintf() in which the destination buffer was also passed as an
   argument corresponding to a %s format specifier. This could
   (depending on platform?) behave as though the string argument was
   just an empty string.

Note that the compilation thread ID was also lost, so any threads other
than compilation thread 0 could pass the same filename to trfopen() if
they started to trace within the same second, resulting in too few log
files created. Since trfopen() is implemented via fopen(), we can expect
that such a log opened multiple times will be truncated on each open
(after the first).

This problem is fixed by replacing the single buffer (filename) on the
stack with a pair of buffers (buf0, buf1). At any given time, one is
considered the next destination (destBuf). After formatting into
destBuf, the buffers are swapped to ensure that it is safe to format
into destBuf again. With this pair of buffers in place, it is no longer
necessary to declare another buffer (tmp) for getFormattedName().
(commit: 1a1e980)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 6b31d7ea0327139de6cfa2020f85f793c0413f5d by Devin Papineau
Replace uses of sprintf() in OMROptions.cpp

sprintf() is unsafe and should not be used.
(commit: 6b31d7e)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 49d98cea17b33f4999fd92dc267b43aa37c99cbe by Jackie Midroni
Implement vadd for types ShortVector and ByteVector of size 128

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 49d98ce)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
Commit ff18c36621e538e19fee1a198a82199e23de8277 by Devin Papineau
Define getTRPID(char*) for any downstream project that calls it

Such calls should be updated to call getTRPID(char*, size_t) instead,
but this allows builds to succeed in the meantime.
(commit: ff18c36)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit ecab1d42fedbf89dddc3e0129036b816b7cffb3a by Peter Shipton
Improve port library startup failure return codes

Issue https://github.com/eclipse-openj9/openj9/issues/12526

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: ecab1d4)
The file was modified include_core/omrporterror.h (diff)
The file was modified port/unix/omrsignal.c (diff)
The file was modified port/ztpf/omrsignal.c (diff)
Commit 616c3397817823dcbee3fc2f8fff1be8f408a575 by Peter Shipton
Call perror() when SIGSEM_INIT fails in port library startup

Help to diagnose a rare port library startup issue on OSX.

Issue https://github.com/eclipse-openj9/openj9/issues/12526

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: 616c339)
The file was modified port/unix/omrsignal.c (diff)
Commit c91ca47c9abc8315187f88d33ffcb3d53c508113 by Jackie Midroni
Implement vsub for types ShortVector and ByteVector of size 128

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: c91ca47)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 38d242bbe2a6c2bffd48f88ec8db92b5ef04c6e2 by Devin Papineau
Define TR_VerboseLog::CriticalSection as a vlog RAII lock guard

The verbose log can now be locked by declaring a local variable of type
TR_VerboseLog::CriticalSection, and the lock will be automatically
released at the end of the variable's scope. Locking this way is
advantageous because it's not possible to forget to release the lock,
and because the lock will always be released even if an exception is
thrown.

In general, releasing a lock while unexpectedly unwinding for an
exception could leave a program in a bad state. If the lock protects an
invariant, it's possible to take the lock, temporarily violate the
invariant, and then unwind before restoring it. However, in the case of
the verbose log lock specifically, the only effect of unlocking on
unwind will be to prematurely truncate the output being generated at the
time. The output is just diagnostic, so it's best to simply release the
lock.

There is an optional boolean parameter to specify whether or not to
actually acquire the lock. This is useful for cases where we are
incrementally generating output that needs to stay together, but we're
doing so conditionally in the midst of other logic, e.g.

    if (verbose)
        TR_VerboseLog::write(...);

    ...

    if (verbose)
        TR_VerboseLog::write(...);

    ...

    if (verbose)
        TR_VerboseLog::writeLine(...);

The boolean parameter allows for a sequence like this to use
CriticalSection while still only locking when necessary:

    TR_VerboseLog::CriticalSection vlogLock(verbose);

Without it, the use of CriticalSection would force the code either to
lock each write individually, which is too fine a granularity and allows
unwanted interleaving, or to take the lock even when not outputting to
the verbose log.
(commit: 38d242b)
The file was modified compiler/env/VerboseLog.hpp (diff)
Commit 04bcb60cd38713fce081e6ccb5bb47a4382ec2eb by Devin Papineau
Replace vlogAcquire()/vlogRelease() pairs with CriticalSection

TR_VerboseLog::CriticalSection should be preferred whenever it is
straightforward to use.
(commit: 04bcb60)
The file was modified compiler/control/CompileMethod.cpp (diff)
The file was modified compiler/ras/OptionsDebug.cpp (diff)
The file was modified compiler/env/CompileTimeProfiler.hpp (diff)
The file was modified compiler/env/VerboseLog.cpp (diff)
The file was modified compiler/compile/OMRCompilation.cpp (diff)
The file was modified compiler/infra/SimpleRegex.cpp (diff)
The file was modified compiler/ras/LimitFile.cpp (diff)
The file was modified compiler/env/TRPersistentMemory.cpp (diff)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 232e20ebf40a247c83112d364d829c2d50b70d3f by Henry Zongaro
Remove obsolete overloading of ArrayStoreCHK

A downstream project used overloading of ArrayStoreCHK to allow for
checking of whether a null reference was being stored to an array whose
component type is one that does not allow for null references.  That
overloading is no longer used in the downstream project, and the new
nonNullableArrayNullStoreCheck non-helper symbol can be used to
achieve the same effect.  This change removes the potential overloading
of ArrayStoreCHK.

Signed-off-by:  Henry Zongaro <zongaro@ca.ibm.com>
(commit: 232e20e)
The file was modified compiler/il/OMRBlock.hpp (diff)
The file was modified compiler/il/OMRNode.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
The file was modified compiler/il/OMRBlock.cpp (diff)
Commit 951d8c173363a5d343c6fa7e35f111afd4a6c5a5 by Keith W. Campbell
cmake : don't ignore -DOMR_WARNINGS_AS_ERRORS=OFF

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: 951d8c1)
The file was modified jitbuilder/CMakeLists.txt (diff)
The file was modified fvtest/compilertest/CMakeLists.txt (diff)
Commit c4c8f3d927cc7554fe091d7eb70027cf9d5250f2 by Keith W. Campbell
Fix potential NULL pointer use

Discovered via a warning from g++-11 - possibly a copy-paste error?

Signed-off-by: Keith W. Campbell <keithc@ca.ibm.com>
(commit: c4c8f3d)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
Commit be3e588bfc63ee54a6b4eba3872d70f1f7b7ce63 by Peter Shipton
On OSX incorporate nano time in wakeUpASyncReporter sem name

Issue https://github.com/eclipse-openj9/openj9/issues/12526

Signed-off-by: Peter Shipton <Peter_Shipton@ca.ibm.com>
(commit: be3e588)
The file was modified port/unix/omrsignal.c (diff)
Commit 7c49955c01a92f2fe2acb802a11184821893858e by Devin Papineau
Delete getTRPID(char*) in favour of getTRPID(char*, size_t)

I don't believe the former has any remaining downstream callers.
(commit: 7c49955)
The file was modified compiler/control/OMROptions.cpp (diff)
Commit 9853f8164cd41c5886835cef66b00b07efa7e9a2 by Akira Saitoh
AArch64: Support TR_ConstantPool relocation in Constant Data Snippet

This commit add support for TR_ConstantPool relocation in
Constant Data Snippet on aarch64.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 9853f81)
The file was modified compiler/aarch64/codegen/ConstantDataSnippet.cpp (diff)
Commit 8a0670978d0c9316a0a84b0d15bb9feb38837cbb by Nazim Bhuiyan
Prevent OSR transitions from failed guards

For inlined callee methods that we skip creating HCR guards for,
setting createdHCRGuard to false prevents creating an OSR
transition point to be taken in cases such as a failed
TR_ProfiledGuard.

Signed-off-by: Nazim Bhuiyan <nubhuiyan@ibm.com>
(commit: 8a06709)
The file was modified compiler/optimizer/Inliner.cpp (diff)
Commit c6a824885774ef92d897e89f8fc0a71c90d96314 by Annabelle Huo
Do not rematerialize register for class pointer or method pointer

Do not rematerialize register for class pointer or method pointer if
it's AOT compilation because it doesn't have node info in register
rematerialization to create relocation record for the class pointer
or the method pointer.

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: c6a8248)
The file was modified compiler/x/codegen/OMRTreeEvaluator.cpp (diff)
Commit 08ac8e91e0cf63124600e782a963737db1ec5151 by Jackie Midroni
Change vmul for IntVectors to use single vmuluwm instruction

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 08ac8e9)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
Commit 5f7c29afd6f218306371e5641b6dfba5fabe6d33 by Jackie Midroni
Implement vmul for type ShortVector of size 128

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 5f7c29a)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
Commit 844927e61604d8830cd4978ba2fd7fb6e2428f2b by Jackie Midroni
Implement vmul for type ByteVector of size 128

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 844927e)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
Commit 2d6604f16eb59fa64e705951a60e5a1f28e3304e by Jackie Midroni
Add binary encoder unit tests for vmladduhm, vmuleub, and vmuloub

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 2d6604f)
The file was modified fvtest/compilerunittest/p/BinaryEncoder.cpp (diff)
Commit 447964f2249887ab027326acb5f0cd50cba4a2fd by Gita Koblents
Optimize arrays with stable elements

- array elements are considered stable if their values are constant
  unless they are zero
(commit: 447964f)
The file was modified compiler/optimizer/VPConstraint.hpp (diff)
The file was modified compiler/optimizer/VPConstraint.cpp (diff)
The file was modified compiler/env/OMRKnownObjectTable.hpp (diff)
The file was modified compiler/env/OMRKnownObjectTable.cpp (diff)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit 7c412d802eefcbbfc43c78e3c3ea3d38db1709f6 by Salman Rana
Core (Standard) SATB Routines

Implementation of SATB routines to enable SATB for `optavgpause`
_(Limited to Xint+OOL Allocations)_

- Added obj alloc premarking to TLH Allocation interface
- Introduced some ASSERTS in shared ConcurrentGC code to ensure we don't
transition to certain concurrent sates and we don't call certain
callbacks known to be unreachable by SATB

_Implemented the following methods for SATB collector:_
- `setupForConcurrent` - initial STW to mark roots and set  allocation
colour
- `doConcurrentTrace` - trace routine, adapted from incremental approach
simplified to remove CARDS and "promote"  Background threads activity
- `completeConcurrentTracing`- final STW to flush barrier packets and
complete any remaining tracing before handing off to ParallelGlobalGC
- `setThreadsScanned` - to shade threads "black"
- `initialize`; currently there is much this method does, but will be
needed to register call backs for GENCON and premaking TLH

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: 7c412d8)
The file was modified example/glue/ConcurrentMarkingDelegate.hpp (diff)
The file was modified example/glue/MarkingDelegate.hpp (diff)
The file was modified gc/base/TLHAllocationInterface.cpp (diff)
The file was modified gc/base/standard/ConcurrentGC.hpp (diff)
The file was modified gc/base/standard/ConfigurationStandard.cpp (diff)
The file was modified gc/base/standard/ConcurrentGCSATB.hpp (diff)
The file was modified example/glue/MarkingDelegate.cpp (diff)
The file was modified gc/base/standard/StandardWriteBarrier.hpp (diff)
The file was modified gc/base/MarkingScheme.cpp (diff)
The file was modified gc/base/standard/RememberedSetSATB.hpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.cpp (diff)
The file was modified gc/base/standard/ConcurrentGCSATB.cpp (diff)
The file was modified gc/base/EnvironmentBase.cpp (diff)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
Commit 5f4fee629a062ff25872ba379b4be63d33812d5e by Mike Zhang
Add OS detection for Windows 11 and Server 2022

The update to Windows 11 does not increment the major version,
so we detect using other info such as CurrentBuild number.

Also use CurrentBuild number to detect Server 2016 and 2019
instead of ReleaseId.

Signed-off-by: Mike Zhang <mike.h.zhang@ibm.com>
(commit: 5f4fee6)
The file was modified port/win32/omrsysinfo.c (diff)
Commit 24984c0b822f942825afb1344130a4a844c23b28 by Daryl Maier
Remove VP optimization for obsolete TreeMap method

This is in OpenJ9-specific code.  The `rbInsert` method is not present in
any TreeMap JDK implementation that is relevant to OpenJ9.

Signed-off-by: Daryl Maier <maier@ca.ibm.com>
(commit: 24984c0)
The file was modified compiler/optimizer/VPHandlers.cpp (diff)
Commit ce8035a697585821a200e6ab22ff202e8077d041 by Kazuhiro Konno
AArch64: Add support for Int32 and Int64 in vnegEvaluator

This commit adds support for Int32 and Int64 in AArch64 vnegEvaluator.

Signed-off-by: KONNO Kazuhiro <konno@jp.ibm.com>
(commit: ce8035a)
The file was modified compiler/aarch64/codegen/OMRInstOpCode.enum (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/UnaryEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OpBinary.cpp (diff)
The file was modified fvtest/compilertriltest/VectorTest.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
Commit 2ed16c85bace4355906fc9686a7e783a23239e3a by Annabelle Huo
Add findOrFabricateFlattenedArrayElementFieldShadowSymbol

Signed-off-by: Annabelle Huo <Annabelle.Huo@ibm.com>
(commit: 2ed16c8)
The file was modified compiler/compile/OMRSymbolReferenceTable.hpp (diff)
The file was modified compiler/compile/OMRSymbolReferenceTable.cpp (diff)
Commit 74f8db1245e44c4501ba95b1936417f0f9e65ac1 by Akira Saitoh
AArch64: Improve MemoryReference class for array access

Improve MemoryReference in aarch64 codegen.
- Enable capturing aladd node in `populateMemoryReference` function.
- Enable use of scale and extend code.
- Simplify `consolidateRegisters` and `addToOffset` function.
- Introduce `normalize` function to ensure invalid combination of
base register and index register and offset is not used.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 74f8db1)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.hpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Debug.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64Instruction.cpp (diff)
The file was modified compiler/aarch64/codegen/GenerateInstructions.cpp (diff)
Commit a3a5d1b048a45d274b43c76d436e098fa9050d1b by Salman Rana
Proper Overflow Handling For SATB

Now that the Standard Overflow handler is used by SATB, the handler must
notify the collector when an overflow occurs (e.g to increment overflow
stats and set proper flags specific to concurrent collector). This
mirrors the Incremental CGC overflow handler (in
ConcurrentOverflowHandler).

Furthermore, logic from `clearConcurrentWorkStackOverflow` specific to
Concurrent Incremental has been pulled out from base, this resulted in
memory corruption discovered by testing with `-Xcheck:memory`

Signed-off-by: Salman Rana <salman.rana@ibm.com>
(commit: a3a5d1b)
The file was modified gc/base/standard/ConcurrentGCIncrementalUpdate.hpp (diff)
The file was modified gc/base/standard/ConcurrentGC.cpp (diff)
The file was modified gc/base/standard/ConcurrentGC.hpp (diff)
The file was modified gc/base/standard/ParallelGlobalGC.hpp (diff)
The file was modified gc/base/standard/ConcurrentGCIncrementalUpdate.cpp (diff)
The file was modified gc/base/standard/ConcurrentOverflow.cpp (diff)
The file was modified gc/base/standard/OverflowStandard.cpp (diff)
Commit 132b76bb7218ca009d280d36e8589897ed64bfea by Jackie Midroni
Implement vmul for LongVectors

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: 132b76b)
The file was modified compiler/p/codegen/OMRInstOpCodeProperties.hpp (diff)
The file was modified compiler/p/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/p/codegen/OMRTreeEvaluator.hpp (diff)
The file was modified compiler/p/codegen/OMRInstOpCode.enum (diff)
Commit dc75a2376d683ff8594e3515ffc9741c77f9b2fc by Jackie Midroni
Add binary encoder unit tests for vmulld, vmuleuw, vmulouw, vrld, and vsld

Signed-off-by: midronij <jackie.midroni@ibm.com>
(commit: dc75a23)
The file was modified fvtest/compilerunittest/p/BinaryEncoder.cpp (diff)
Commit f6ffd120f71f8baf7033eca20f9c520c692f7c35 by Vijay Sundaresan
Minor cleanup of PRE code

1)This commit deletes some inactive code in the PRE optimization.
2)There were some old mentions that were renamed to exception check removal.
3)Finally tracing was improved in the cost benefit part of PRE.

Signed-off-by: Vijay Sundaresan vijaysun@ca.ibm.com
(commit: f6ffd12)
The file was modified compiler/optimizer/PartialRedundancy.cpp (diff)
Commit 74ad9913ff7ec5ee0b5d0cf6318aae482541c800 by Akira Saitoh
AArch64: Provide factory methods for MemoryReference objects

Introduce static factory methods for MemoryReference objects into aarch64 codegen.
Replace all direct calls to MemoryReference constructors with corresponding factory methods.
The separate PR will make MemoryReference constructors private.

Signed-off-by: Akira Saitoh <saiaki@jp.ibm.com>
(commit: 74ad991)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRMemoryReference.cpp (diff)
The file was modified compiler/aarch64/codegen/MemoryReference.hpp (diff)
The file was modified compiler/aarch64/codegen/OMRLinkage.cpp (diff)
The file was modified compiler/aarch64/codegen/ARM64SystemLinkage.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRCodeGenerator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRRegisterDependency.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRTreeEvaluator.cpp (diff)
The file was modified compiler/aarch64/codegen/OMRMachine.cpp (diff)