[Chapel Merge] Add new flag to disable select optimizations for debugging

Branch: refs/heads/main
Revision: f4ec678a569ca82cd57f930a56c188357803e647
Author: jabraham17
Link: Add new flag to disable select optimizations for debugging by jabraham17 · Pull Request #27918 · chapel-lang/chapel · GitHub
Log Message:
Add new flag to disable select optimizations for debugging (#27918)

Adds a new flag to disable select optimizations for debugging. The new
flag, --debug-safe-optmizations-only, will turn off a number of Chapel
optimizations that we have identified as hindering debugging.

Resolves Disable select optimization passes when `--debug`/`-g` is used · Issue #27615 · chapel-lang/chapel · GitHub

Other changes in this PR

  • Renamed -g/--debug to -g/--debug-symbols
  • Add a new flag, --debug, which implies -g and
    --debug-safe-optmizations-only
  • for a limited time, users will receive a warning when using this flag
    letting them now its doing more than previously
  • While adding this warning, I also cleaned up the warning for editions
    so they only get printed once
  • Cleanup and reorder docs/flags related to debugging and C code
    generation
  • paratest with/without gasnet

[Reviewed by @DanilaFe]

Compare: Comparing d03955d800be90ce2c6eeab04799510f04450bb2...70865352979f47006f30be33bda4d8cef10b8805 · chapel-lang/chapel · GitHub

Diff:
M compiler/codegen/codegen.cpp
M compiler/include/driver.h
M compiler/include/llvmDebug.h
M compiler/llvm/clangUtil.cpp
M compiler/main/driver.cpp
M compiler/util/files.cpp
M doc/rst/usingchapel/debugging/bkc.rst
M man/chpl.rst
M test/compflags/bradc/help/userhelp.good
M test/edition/basics/attributeCheck.compopts
M test/edition/basics/attributeCheck.pre-edition.good
D test/edition/basics/attributeCheck.pre-edition.shorter.good
D test/edition/basics/attributeCheck.skipif
M test/edition/basics/flagCheck.compopts
M test/edition/basics/flagCheck.pre-edition.good
D test/edition/basics/flagCheck.pre-edition.shorter.good
D test/edition/basics/flagCheck.skipif
M test/llvm/dbg-intrinsics/dbg-proc-declare.compopts
M test/llvm/dbg-intrinsics/dbg-proc-value.compopts
M test/llvm/dbg-records/dbg-proc-declare.compopts
M test/llvm/dbg-records/dbg-proc-value.compopts
M test/llvm/debugInfo/dwarfdump/LASTCOMPOPTS
M test/llvm/debugInfo/dwarfdump/arrays.good
M test/llvm/debugInfo/dwarfdump/atomics.good
M test/llvm/debugInfo/dwarfdump/basicTypes.good
M test/llvm/debugInfo/dwarfdump/c_array.good
M test/llvm/debugInfo/dwarfdump/c_ptrs.good
M test/llvm/debugInfo/dwarfdump/classes.good
M test/llvm/debugInfo/dwarfdump/domains.good
M test/llvm/debugInfo/dwarfdump/linkedList.good
M test/llvm/debugInfo/dwarfdump/nothingTypes.good
M test/llvm/debugInfo/dwarfdump/numerics.good
M test/llvm/debugInfo/dwarfdump/ranges.good
M test/llvm/debugInfo/dwarfdump/refs.good
M test/llvm/debugInfo/dwarfdump/syncs.good
M test/llvm/debugInfo/dwarfdump/tuples.good
M test/llvm/debugInfo/gdb/LASTCOMPOPTS
M test/llvm/debugInfo/lldb/LASTCOMPOPTS
M util/chpl-completion.bash
https://github.com/chapel-lang/chapel/pull/27918.diff