Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Turn off some range halts for --no-checks #11780

Merged
merged 8 commits into from
Dec 10, 2018

Conversation

mppf
Copy link
Member

@mppf mppf commented Dec 4, 2018

This PR changes several halts / chpl_error calls in ChapelRange to:

  • use HaltWrappers (normally boundsCheckHalt) where possible
  • only execute if boundsCheckHalt if boundsChecking is enabled
  • full local testing

Reviewed by @ronawho - thanks!

@mppf mppf changed the title Perhaps these range halts should be off with --no-checks Turn off some range halts for --no-checks Dec 6, 2018
@mppf mppf requested a review from ronawho December 6, 2018 21:43
@@ -2264,7 +2267,7 @@ proc _cast(type t, r: range(?)) where isRangeType(t) {
{
// WARNING: this case has not been tested
if boundsChecking && this.hasLast() then
halt("zippered iteration where a bounded range follows an unbounded iterator");
HaltWrappers.boundsCheckHalt("zippered iteration where a bounded range follows an unbounded iterator");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe zipLengthHalt instead of boundsCheckHalt

} else {
halt("Trying to read an aligned range value into a non-stridable array");
} else if boundsChecking {
HaltWrappers.boundsCheckHalt("Trying to read an aligned range value into a non-stridable array");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't quite seem like bounds checking, but I'm not sure what I'd call it instead

if boundsChecking {
if minType != modulus.type {
if m : modulus.type != modulus then
HaltWrappers.boundsCheckHalt("Modulus too large.");
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doesn't really feel like bounds checking either. Is this more of a casting error?

@ronawho
Copy link
Contributor

ronawho commented Dec 6, 2018

@bradcray has done a lot with ranges recently and may be interested in reviewing too.

@mppf mppf merged commit f15a898 into chapel-lang:master Dec 10, 2018
@mppf mppf deleted the fewer-range-halts-on-fast branch December 10, 2018 17:07
ronawho added a commit to ronawho/chapel that referenced this pull request Mar 15, 2019
Add recent annotations and backfill missing ones since last release

Improvements:
 - minor unordered operation improvements (chapel-lang#12089)
 - massive single and multi-locale scan improvements (chapel-lang#12469, chapel-lang#12481)
 - string-ish improvements from --no-checks disabling range checks (chapel-lang#11780)
 - remote-record-read comm count regression and fix (chapel-lang#11629, chapel-lang#12439)
 - tuple-to-complex cast regression fix (chapel-lang#12429)
 - sparse bulk-add improvement from using radix sort (chapel-lang#12452)
 - memory leak regressions, fixes, and improvements (chapel-lang#12225, chapel-lang#12394, chapel-lang#12421,
   chapel-lang#12512, chapel-lang#12500, chapel-lang#12516, chapel-lang#12527, chapel-lang#12531, chapel-lang#12551, chapel-lang#12554, chapel-lang#12552)

 - minor regression for serial reductions from ExternArr (chapel-lang#11893)

 - mark notable reboots of chapcs machines
ronawho added a commit that referenced this pull request Mar 15, 2019
Add perf annotations for 2019-03-14

Add recent annotations and backfill missing ones since last release

Improvements:
 - minor improvements for unordered operations (#12089)
 - massive single and multi-locale scan improvements (#12469, #12481)
 - string-ish improvements from --no-checks disabling range checks (#11780)
 - regression and fix for remote-record-read-copy comm count (#11629, #12439)
 - regression fix for tuple-to-complex cast (#12429)
 - sparse bulk-add improvement from using radix sort (#12452)
 - regressions, fixes, and improvements for leaks (#12225, #12394, #12421,
    #12512, #12500, #12516, #12527, #12531, #12551, #12554, #12552)

Regressions:
 - minor regression for serial reductions from ExternArr (#11893)

Misc:
 - mark notable reboots of chapcs machines (e.g. llvm, default)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants