RFR: 8325495: C2: implement optimization for series of Add of unique value [v6]
Kangcheng Xu
kxu at openjdk.org
Mon Sep 30 06:22:17 UTC 2024
> This pull request resolves [JDK-8325495](https://bugs.openjdk.org/browse/JDK-8325495) by converting series of additions of the same operand into multiplications. I.e., `a + a + ... + a + a + a => n*a`.
>
> As an added benefit, it also converts `C * a + a` into `(C+1) * a` and `a << C + a` into `(2^C + 1) * a` (with respect to constant `C`). This is actually a side effect of IGVN being iterative: at converting the `i`-th addition, the previous `i-1` additions would have already been optimized to multiplication (and thus, further into bit shifts and additions/subtractions if possible).
>
> Some notable examples of this transformation include:
> - `a + a + a` => `a*3` => `(a<<1) + a`
> - `a + a + a + a` => `a*4` => `a<<2`
> - `a*3 + a` => `a*4` => `a<<2`
> - `(a << 1) + a + a` => `a*2 + a + a` => `a*3 + a` => `a*4 => a<<2`
>
> See included IR unit tests for more.
Kangcheng Xu has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 33 commits:
- resolve conflicts
- resolve conflicts
- Arithmetic canonicalization v3 (#3)
* 8340144: C1: remove unused Compilation::_max_spills
Reviewed-by: thartmann, shade
* 8340176: Replace usage of -noclassgc with -Xnoclassgc in test/jdk/java/lang/management/MemoryMXBean/LowMemoryTest2.java
Reviewed-by: kevinw, lmesnik
* 8339793: Fix incorrect APX feature enabling with -XX:-UseAPX
Reviewed-by: kvn, thartmann, sviswanathan
* 8340184: Bug in CompressedKlassPointers::is_in_encodable_range
Reviewed-by: coleenp, rkennke, jsjolen
* 8332442: C2: refactor Mod cases in Compile::final_graph_reshaping_main_switch()
Reviewed-by: roland, chagedorn, jkarthikeyan
* 8340119: Remove oopDesc::size_might_change()
Reviewed-by: stefank, iwalulya
* 8340009: Improve the output from assert_different_registers
Reviewed-by: aboldtch, dholmes, shade, mli
* 8340273: Remove CounterHalfLifeTime
Reviewed-by: chagedorn, dholmes
* 8338566: Lazy creation of exception instances is not thread safe
Reviewed-by: shade, kvn, dlong
* 8339648: ZGC: Division by zero in rule_major_allocation_rate
Reviewed-by: aboldtch, lucy, tschatzl
* 8329816: Add SLEEF version 3.6.1
Reviewed-by: erikj, mli, luhenry
* 8315273: (fs) Path.toRealPath(LinkOption.NOFOLLOW_LINKS) fails when "../../" follows a link (win)
Reviewed-by: djelinski
* 8339574: Behavior of File.is{Directory,File,Hidden} is not documented with respect to symlinks
Reviewed-by: djelinski, alanb
* 8340200: Misspelled constant `AttributesProcessingOption.DROP_UNSTABLE_ATRIBUTES`
Reviewed-by: liach
* 8339934: Simplify Math.scalb(double) method
Reviewed-by: darcy
* 8339790: Support Intel APX setzucc instruction
Reviewed-by: sviswanathan, jkarthikeyan, kvn
* 8340323: Test jdk/classfile/OptionsTest.java fails after JDK-8340200
Reviewed-by: alanb
* 8338686: App classpath mismatch if a jar from the Class-Path attribute is on the classpath
Reviewed-by: dholmes, iklam
* 8337563: NMT: rename MEMFLAGS to MemTag
Reviewed-by: dholmes, coleenp, jsjolen
* 8340210: Add positionTestUI() to PassFailJFrame.Builder
Co-authored-by: Alexey Ivanov <aivanov at openjdk.org>
Reviewed-by: aivanov, azvegint
* 8340132: Remove internal CpException for reading malformed utf8
Reviewed-by: asotona
* 8340213: jcmd VM.events ignores max argument
Reviewed-by: szaldana, cjplummer, amenkov, mli
* 8340015: Open source several AWT focus tests - series 7
Reviewed-by: honkar
* 8340280: Avoid calling MT.invokerType() when creating LambdaForms
Reviewed-by: liach, jvernee
* 8333258: C2: high memory usage in PhaseCFG::insert_anti_dependences()
Reviewed-by: kvn, epeter
* 8340230: Tests crash: assert(is_in_encoding_range || k->is_interface() || k->is_abstract()) failed: sanity
Reviewed-by: thartmann, kvn
* 8319873: Add windows implementation for jcmd System.map and System.dump_map
Co-authored-by: Simon Tooke <stooke at openjdk.org>
Reviewed-by: stuefe, kevinw, szaldana
* 8339845: Update color.org and wapforum.org links to use HTTPS instead of HTTP
Reviewed-by: prr, honkar, aivanov
* 8340113: Remove JULONG as a Diagnostic Command argument type (jcmd JFR.view)
Reviewed-by: lmesnik, egahlin
* 8340272: C2 SuperWord: JMH benchmark for Reduction vectorization
Reviewed-by: kvn, jkarthikeyan
* 8337302: Undefined type variable results in null
Reviewed-by: liach
* 8339738: RISC-V: Vectorize crc32 intrinsic
Reviewed-by: fyang, luhenry
* 8340368: windows-x64-slowdebug build fails after JDK-8319873
Reviewed-by: jpai, kevinw, aboldtch, eosterlund
* 8339992: RISC-V: some minor improvements of base64_vector_decode_round
Reviewed-by: fyang, luhenry
* 8340233: Missed ThreadWXEnable in jfrNativeLibraryLoadEvent.cpp
Reviewed-by: mgronlun
* 8340391: Windows jcmd System.map and System.dump_map tests failing
Reviewed-by: cjplummer
* 8339962: Open source AWT TextField tests - Set1
Reviewed-by: jdv, dnguyen, prr
* 8340078: Open source several 2D tests
Reviewed-by: honkar
* 8340360: Update -mx to -Xmx in UnninstallUIMemoryLeaks test
Reviewed-by: serb, prr
* 8339980: [s390x] ProblemList jdk/java/util/zip/CloseInflaterDeflaterTest.java
Reviewed-by: lucy
* 8339416: [s390x] Provide implementation for resolve_global_jobject
Reviewed-by: mdoerr, lucy
* 8286851: Deprecate for removal several of the undocumented java launcher options
Reviewed-by: dholmes
* 8340276: Test java/lang/management/ThreadMXBean/Locks.java failed with NullPointerException
Reviewed-by: cjplummer, lmesnik
* 8338759: Add extra diagnostic to java/net/InetAddress/ptr/Lookup.java
Reviewed-by: dfuchs, shade
* 8337674: ZGC: Consistent style for naming private static constants
Reviewed-by: stefank, aboldtch, mli
* 8340007: Refactor KeyEvent/FunctionKeyTest.java
Reviewed-by: azvegint
* 8340306: Add border around instructions in PassFailJFrame
Reviewed-by: honkar, prr
* 8339787: Add some additional diagnostic output to java/net/ipv6tests/UdpTest.java
Reviewed-by: dfuchs
* 8338995: New Object to ObjectMonitor mapping: PPC64 implementation
Reviewed-by: rrich, lucy
* 8331391: Enhance the keytool code by invoking the buildTrustedCerts method for essential options
Reviewed-by: coffeys, mullan
* 8298614: Support CDS heap dumping for SerialGC and ParallelGC
Reviewed-by: dholmes, lmesnik, iklam
* 8338693: assert(Atomic::add(&ik->_shared_class_load_count, 1) == 1) failed: shared class loaded more than once
Reviewed-by: iklam, dholmes
* 8340329: (fs) Message of NotLinkException thrown by FIles.readSymbolicLink does not include file name (win)
Reviewed-by: alanb
* 8339735: Remove references to Applet in core-libs/security APIs
Reviewed-by: coffeys, naoto, iris, rriggs, lancea, mullan
* 8340271: Open source several AWT Robot tests
Reviewed-by: abhiscxk, honkar
* 8340308: PassFailJFrame: Make rows default to number of lines in instructions
Reviewed-by: honkar, azvegint
* 8340399: Update comment in SourceVersion for language evolution history
Reviewed-by: iris
* 8340166: [REDO] CDS: Trim down minimum GC region alignment
Reviewed-by: ccheung, iklam
* 8340400: Shenandoah: Whitebox breakpoint GC requests may cause assertions
Reviewed-by: shade
* 8339902: Open source couple TextField related tests
Reviewed-by: honkar
* 8340353: Remove CompressedOops::ptrs_base
Reviewed-by: stefank, coleenp, shade, mli
* 8340480: Bad copyright notices in changes from JDK-8339902
Reviewed-by: kcr, bpb, kizune
* 8339192: Native annotation parsing code of deprecated annotations causes crash
Reviewed-by: jrose, mgronlun
* 8339895: Open source several AWT focus tests - series 3
Reviewed-by: prr
* 8340436: Remove unused CompressedOops::AnyNarrowOopMode
Reviewed-by: haosun, dholmes
* 8339984: Open source AWT MenuItem related tests
Reviewed-by: aivanov
* 8339906: Open source several AWT focus tests - series 4
Reviewed-by: abhiscxk, prr
* 8340418: GHA: MacOS AArch64 bundles can be removed prematurely
Reviewed-by: erikj
* 8340439: AArch64: Extra entry declaration for assember test
Reviewed-by: haosun, lmesnik, mli
* 8340456: Reduce overhead of proxying Object methods in ProxyGenerator
Reviewed-by: liach
* 8340438: RISC-V: minor improvement in base64
Reviewed-by: fyang
* 8340008: KeyEvent/KeyTyped/Numpad1KeyTyped.java has 15 seconds timeout
Reviewed-by: azvegint, prr
* 8339972: Make a few fields in SortingFocusTraversalPolicy static
Reviewed-by: azvegint, aivanov
* 8340540: Problemlist DcmdMBeanPermissionsTest.java and SystemDumpMapTest.java
Reviewed-by: kevinw
* 8338658: New Object to ObjectMonitor mapping: s390x implementation
Reviewed-by: lucy, mdoerr
* 8340269: [s390x] TestLargeStub.java failure after 8338123
Reviewed-by: mdoerr, lucy
* 8340537: Typo in javadoc of java.util.jar.JarFile
Reviewed-by: mullan, lancea, iris
* 8339198: Remove tag field from AbstractPoolEntry
Reviewed-by: asotona, redestad
* 8340232: Optimize DataInputStream::readUTF
Reviewed-by: liach, bpb
* 8338471: Assert deleted methods not returned by CallInfo
Reviewed-by: shade, jwaters, dholmes
* 8340092: [Linux] containers/systemd/SystemdMemoryAwarenessTest.java failing on some systems
Reviewed-by: mbaesken
* 8339781: Better use of Javadoc tags in javax.lang.model
Reviewed-by: jjg
* 8339217: Optimize ClassFile API loadConstant
Reviewed-by: liach, redestad, asotona
* 8340544: Optimize setLocalsFromArg
Reviewed-by: redestad, liach
* 8340524: Remove NarrowPtrStruct
Reviewed-by: shade, jwaters
* 8340387: Update OS detection code to recognize Windows Server 2025
Reviewed-by: mdoerr, jwaters, dholmes
* 8340171: CDS: Enhance bitmap truncation
Reviewed-by: matsaave, iklam
* 8340392: Handle OopStorage in location decoder
Reviewed-by: kbarrett, dholmes
* 8340573: Remove unused G1ParScanThreadState::_partial_objarray_chunk_size
Reviewed-by: tschatzl
* 8340084: Open source AWT Frame related tests
Reviewed-by: psadhukhan, honkar
* 8339852: Fix typos in java.compiler documentation
Reviewed-by: liach, darcy
* 8325949: Create an internal utility method for creating VarHandle instances
Reviewed-by: rriggs
* 8339161: ZGC: Remove unused remembered sets
Reviewed-by: aboldtch, stefank
* 8335334: Stress mode to randomly execute unstable if traps
Reviewed-by: chagedorn, kvn
* 8340393: Open source closed choice tests #2
Reviewed-by: psadhukhan
* 8340183: Shenandoah: Incorrect match for clone barrier in is_gc_barrier_node
Reviewed-by: roland, rkennke
* 8336025: Improve ZipOutputSream validation of MAX CEN Header field limits
Reviewed-by: alanb
* 8319332: Security properties files inclusion
Co-authored-by: Francisco Ferrari Bihurriet <fferrari at openjdk.org>
Co-authored-by: Martin Balao <mbalao at openjdk.org>
Reviewed-by: weijun, mullan, kdriver
* 8340461: Amend description for logArea
Reviewed-by: azvegint, prr
* 8340411: open source several 2D imaging tests
Reviewed-by: azvegint
* 8340365: Position the first window of a window list
Reviewed-by: azvegint, prr
* WIP: v3
* 8338918: Remove non translated file name from WinResources resource bundle
Reviewed-by: jlu, almatvee
* 8340707: ProblemList applications/ctw/modules/java_base.java due to JDK-8340683
Reviewed-by: darcy
* 8340114: Remove outdated SelectVersion() function from the launcher and update the code comments explaining the code flow
Reviewed-by: dholmes, alanb
* 8339995: Open source several AWT focus tests - series 6
Reviewed-by: prr
* 8340596: Remove dead code from RequiresSetenv function in java.base/unix/native/libjli/java_md.c
Reviewed-by: dholmes
* 8340367: Opensource few AWT image tests
Reviewed-by: prr
* 8340146: ZGC: TestAllocateHeapAt.java should not run with UseLargePages
Reviewed-by: tschatzl, stefank
* 8323688: C2: Fix UB of jlong overflow in PhaseIdealLoop::is_counted_loop()
Reviewed-by: thartmann, kvn
* 8340590: RISC-V: C2: Small improvement to vector gather load and scatter store
Reviewed-by: fyang, dzhang
* 8340623: Remove outdated PROCESSOR_ARCHITECTURE_IA64 from Windows coding
Reviewed-by: alanb, dholmes
* 8335167: Test runtime/Thread/TestAlwaysPreTouchStacks.java failed with Expected a higher ratio between stack committed and reserved
Reviewed-by: stuefe, dholmes, gziemski
* 8340585: [JVMCI] compiler/unsafe/UnsafeGetStableArrayElement.java fails with -XX:-UseCompressedClassPointers
Reviewed-by: dnsimon
* 8340398: [JVMCI] Unintuitive behavior of UseJVMCICompiler option
Reviewed-by: dnsimon
* 8340680: Fix typos in javax.lang.model.SourceVersion
Reviewed-by: darcy, iris
* 8339299: C1 will miss type profile when inline final method
Reviewed-by: lmesnik, vlivanov
* 8340657: [PPC64] SA determines wrong unextendedSP
Reviewed-by: ysuenaga, mbaesken
* 8340383: VM issues warning failure to find kernel32.dll on Windows nanoserver
Reviewed-by: dholmes, jwaters
* 8340408: Shenandoah: Remove redundant task stats printing code in ShenandoahTaskQueue
Reviewed-by: shade, wkemper
* 8338546: Speed up ConstantPoolBuilder::classEntry(ClassDesc)
Reviewed-by: asotona, redestad
* 8338405: JFR: Use FILE type for dcmds
Reviewed-by: egahlin, lmesnik
* 8340793: Fix client builds after JDK-8337987
Reviewed-by: shade, fyang
* 8338694: x86_64 intrinsic for tanh using libm
Reviewed-by: kvn, jbhateja, sgibbons, sviswanathan
* 8340143: Open source several Java2D rendering loop tests.
Reviewed-by: psadhukhan
* 8340433: Open source closed choice tests #3
Reviewed-by: honkar, prr
* 8340670: Policy.UNSUPPORTED_EMPTY_COLLECTION.isReadOnly does not return true
Reviewed-by: mullan
* 8340804: doc/building.md update Xcode instructions to note that full install is required
Reviewed-by: erikj, jwaters
* 8338525: Leading and trailing code blocks by indentation
Reviewed-by: hannesw, prappo
* 8340717: Remove unused function declarations from java.c/java.h of the launcher
Reviewed-by: alanb, dholmes, shade, jwaters
* 8340643: RISC-V: Small refactoring for sub/subw macro-assembler routines
Reviewed-by: fyang, luhenry
* 8340708: Optimize StackMapGenerator::processMethod
Reviewed-by: liach
* 8340587: Optimize StackMapGenerator$Frame::checkAssignableTo
Reviewed-by: liach
* 8340710: Optimize DirectClassBuilder::build
Reviewed-by: liach
* 8339935: Open source several AWT focus tests - series 5
Reviewed-by: prr
* 8339771: RISC-V: Reduce icache flushes
Reviewed-by: fyang, mli, luhenry
* 8340808: RISC-V: Client build fails after JDK-8339738
Reviewed-by: fyang
* 8340843: [PPC64/s390x] Error: ShouldNotReachHere() in TemplateInterpreterGenerator::generate_math_entry after 8338694
Reviewed-by: mbaesken, amitkumar
* 8339541: CSS rule is not specific enough
Reviewed-by: jjg
* 8340885: Desugar ZipCoder.Comparison
Reviewed-by: lancea, eirbjo
* 8340568: Incorrect escaping of single quotes when pretty-printing character literals
Reviewed-by: mcimadamore
* 8338583: NMT: Malloc overhead is calculated incorrectly
Reviewed-by: azafari, yan, gziemski
* WIP: use UseNewCode
* 8340815: Add SECURITY.md file
Reviewed-by: mr, jwaters, erikj
* 8340946: Add vmTestbase/gc/memory/Nio/Nio.java and java/nio/Buffer/LimitDirectMemory.java to problem list
Reviewed-by: liach, dcubed, alanb
* 8340684: Reading from an input stream backed by a closed ZipFile has no test coverage
Reviewed-by: lancea
* 8340228: Open source couple more miscellaneous AWT tests
Reviewed-by: prr
* 8340956: ProblemList 4 java/nio/channels/DatagramChannel tests on macosx-all
Reviewed-by: liach, alanb, darcy, dfuchs
* 8340838: Clean up MutableCallSite to use explicit release fence instead of AtomicInteger
Reviewed-by: jrose, redestad, shade
* 8340831: Simplify simple validation for class definition in MethodHandles.Lookup
Reviewed-by: redestad
* 8340864: Remove unused lines related to vmClasses
Reviewed-by: shade, kvn
* WIP: fixed lshift base term matching
* WIP: removed UseNewCode
* 8339271: giflib attribution correction
Reviewed-by: dnguyen, prr
* 8340812: LambdaForm customization via MethodHandle::updateForm is not thread safe
Reviewed-by: liach, shade, jvernee
* 8339260: Move rarely used constants out of ClassFile
Reviewed-by: asotona
* 8340923: The class LogSelection copies uninitialized memory
Reviewed-by: mbaesken, jwaters, stefank
* 8340899: Remove wildcard bound in PositionWindows.positionTestWindows
Reviewed-by: azvegint, prr
* 8340466: Add description for PassFailJFrame constructors
Reviewed-by: prr, honkar
* 8339542: compiler/codecache/CheckSegmentedCodeCache.java fails
Reviewed-by: mdoerr, shade
* 8340687: Open source closed frame tests #1
Reviewed-by: aivanov
* 8339560: Unaddressed comments during code review of JDK-8337664
Reviewed-by: mullan
* 8336942: Improve test coverage for class loading elements with annotations of different retentions
Reviewed-by: vromero
* 8336468: Reflection and MethodHandles should use more precise initializer checks
Reviewed-by: liach, coleenp
* 8336895: BufferedReader doesn't read full \r\n line ending when it doesn't fit in buffer
Reviewed-by: jpai, alanb
* 8339460: CDS error when module is located in a directory with space in the name
Reviewed-by: ccheung, iklam
* 8340981: Update citations to "Hacker's Delight"
Reviewed-by: bpb, iris, liach, jwaters
* 8340983: Use index and definition tags in Object and Double
Reviewed-by: bpb, liach
* 8333403: Write a test to check various components events are triggered properly
Reviewed-by: aivanov
* revert changing AddI/LNodeIdealizationTests
* 8339261: Logs truncated in test javax/net/ssl/DTLS/DTLSRehandshakeTest.java
Reviewed-by: rhalade, hchao
* fixed power-of-2 multiplication detection
* fixed power-of-2 multiplication detection
* refactor lshift multiplier calculation. updated comments
---------
Co-authored-by: Denghui Dong <ddong at openjdk.org>
Co-authored-by: Jaikiran Pai <jpai at openjdk.org>
Co-authored-by: Jatin Bhateja <jbhateja at openjdk.org>
Co-authored-by: Thomas Stuefe <stuefe at openjdk.org>
Co-authored-by: Thomas Schatzl <tschatzl at openjdk.org>
Co-authored-by: Stefan Karlsson <stefank at openjdk.org>
Co-authored-by: Daniel Lundén <dlunden at openjdk.org>
Co-authored-by: Tobias Hartmann <thartmann at openjdk.org>
Co-authored-by: Matthias Baesken <mbaesken at openjdk.org>
Co-authored-by: Magnus Ihse Bursie <ihse at openjdk.org>
Co-authored-by: Brian Burkhalter <bpb at openjdk.org>
Co-authored-by: David M. Lloyd <david.lloyd at redhat.com>
Co-authored-by: Raffaello Giulietti <rgiulietti at openjdk.org>
Co-authored-by: Chen Liang <liach at openjdk.org>
Co-authored-by: Calvin Cheung <ccheung at openjdk.org>
Co-authored-by: Gerard Ziemski <gziemski at openjdk.org>
Co-authored-by: Harshitha Onkar <honkar at openjdk.org>
Co-authored-by: Alexey Ivanov <aivanov at openjdk.org>
Co-authored-by: Leonid Mesnik <lmesnik at openjdk.org>
Co-authored-by: Prasanta Sadhukhan <psadhukhan at openjdk.org>
Co-authored-by: Claes Redestad <redestad at openjdk.org>
Co-authored-by: Roland Westrelin <roland at openjdk.org>
Co-authored-by: Martin Doerr <mdoerr at openjdk.org>
Co-authored-by: Simon Tooke <stooke at openjdk.org>
Co-authored-by: Nizar Benalla <nbenalla at openjdk.org>
Co-authored-by: Kevin Walls <kevinw at openjdk.org>
Co-authored-by: Emanuel Peter <epeter at openjdk.org>
Co-authored-by: Rafael Winterhalter <winterhalter at openjdk.org>
Co-authored-by: Hamlin Li <mli at openjdk.org>
Co-authored-by: Phil Race <prr at openjdk.org>
Co-authored-by: Amit Kumar <amitkumar at openjdk.org>
Co-authored-by: Serhiy Sachkov <serhiy.sachkov at oracle.com>
Co-authored-by: Joel Sikström <joel.sikstrom at oracle.com>
Co-authored-by: Prasadrao Koppula <pkoppula at openjdk.org>
Co-authored-by: Matias Saavedra Silva <matsaave at openjdk.org>
Co-authored-by: Justin Lu <jlu at openjdk.org>
Co-authored-by: Joe Darcy <darcy at openjdk.org>
Co-authored-by: Aleksey Shipilev <shade at openjdk.org>
Co-authored-by: William Kemper <wkemper at openjdk.org>
Co-authored-by: Alexander Zuev <kizune at openjdk.org>
Co-authored-by: Kim Barrett <kbarrett at openjdk.org>
Co-authored-by: David Holmes <dholmes at openjdk.org>
Co-authored-by: Abhishek Kumar <abhiscxk at openjdk.org>
Co-authored-by: SendaoYan <syan at openjdk.org>
Co-authored-by: Andrey Turbanov <aturbanov at openjdk.org>
Co-authored-by: Shaojin Wen <swen at openjdk.org>
Co-authored-by: Coleen Phillimore <coleenp at openjdk.org>
Co-authored-by: Severin Gehwolf <sgehwolf at openjdk.org>
Co-authored-by: Pavel Rappo <prappo at openjdk.org>
Co-authored-by: Per Minborg <pminborg at openjdk.org>
Co-authored-by: Alexander Zvegintsev <azvegint at openjdk.org>
Co-authored-by: Lance Andersen <lancea at openjdk.org>
Co-authored-by: Francisco Ferrari Bihurriet <fferrari at openjdk.org>
Co-authored-by: Martin Balao <mbalao at openjdk.org>
Co-authored-by: Alexey Semenyuk <asemenyuk at openjdk.org>
Co-authored-by: Axel Boldt-Christmas <aboldtch at openjdk.org>
Co-authored-by: Christian Hagedorn <chagedorn at openjdk.org>
Co-authored-by: Gui Cao <gcao at openjdk.org>
Co-authored-by: Afshin Zafari <azafari at openjdk.org>
Co-authored-by: Yudi Zheng <yzheng at openjdk.org>
Co-authored-by: Tomas Zezula <tzezula at openjdk.org>
Co-authored-by: Kuai Wei <kuaiwei.kw at alibaba-inc.com>
Co-authored-by: George Adams <gdams at openjdk.org>
Co-authored-by: Zhengyu Gu <zgu at openjdk.org>
Co-authored-by: Sonia Zaldana Calles <szaldana at openjdk.org>
Co-authored-by: Andrew Dinn <adinn at openjdk.org>
Co-authored-by: vamsi-parasa <srinivas.vamsi.parasa at intel.com>
Co-authored-by: Artur Barashev <artur.barashev at oracle.com>
Co-authored-by: Jonathan Gibbons <jjg at openjdk.org>
Co-authored-by: Robbin Ehn <rehn at openjdk.org>
Co-authored-by: Hannes Wallnöfer <hannesw at openjdk.org>
Co-authored-by: Liam Miller-Cushon <cushon at openjdk.org>
Co-authored-by: Leonov Kirill <91743110+kirleo2 at users.noreply.github.com>
Co-authored-by: Eirik Bjørsnøs <eirbjo at openjdk.org>
Co-authored-by: Daniel D. Daugherty <dcubed at openjdk.org>
Co-authored-by: Ioi Lam <iklam at openjdk.org>
Co-authored-by: Alisen Chung <achung at openjdk.org>
Co-authored-by: Johan Sjölen <jsjolen at openjdk.org>
Co-authored-by: Lutz Schmidt <lucy at openjdk.org>
Co-authored-by: Fernando Guallini <fguallini at openjdk.org>
Co-authored-by: Maxim Kartashev <mkartashev at openjdk.org>
Co-authored-by: Ravi Gupta <rgupta at openjdk.org>
- WIP: v3
- add comments about intentional type narrowing
- Merge pull request #2 from tabjy/arithmetic-canonicalization-v2
Arithmetic canonicalization v2
- remove unused variables
- remove debug printfs
- fix detecting optimized power-of-2 multiplication
- revert usage of integercon(): truncation during jlong to jint is intended
- ... and 23 more: https://git.openjdk.org/jdk/compare/ae4d2f15...0de4feea
-------------
Changes: https://git.openjdk.org/jdk/pull/20754/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20754&range=05
Stats: 450 lines in 3 files changed: 450 ins; 0 del; 0 mod
Patch: https://git.openjdk.org/jdk/pull/20754.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20754/head:pull/20754
PR: https://git.openjdk.org/jdk/pull/20754
More information about the hotspot-compiler-dev
mailing list