Page MenuHomePhabricator
Feed Advanced Search

Fri, Feb 14

davezarzycki abandoned D74298: Honor -finline-functions and -finline-hint-functions at -O0.

I'm abandoning this due to lack of time and the problem being more involved than I thought.

Fri, Feb 14, 3:19 AM · Restricted Project

Tue, Feb 11

davezarzycki committed rG11fb68abab95: [libc++] Unbreak test suite (CWG1423) (authored by davezarzycki).
[libc++] Unbreak test suite (CWG1423)
Tue, Feb 11, 12:06 PM

Sun, Feb 9

davezarzycki added a comment to D74298: Honor -finline-functions and -finline-hint-functions at -O0.

Hi @MaskRay – I was just looking at the source history. I didn't test the old way. As it turns out there isn't a regression, but just some unexplained code in the current clang option parsing. And the -disable-O0-optnone is a useful hint. Thanks! I've been hacking on clang and trying to get the normal inliner pass to run at -O0, but with no luck so far.

Sun, Feb 9, 1:26 PM · Restricted Project
davezarzycki added a comment to D74298: Honor -finline-functions and -finline-hint-functions at -O0.

Hi @lebedev.ri – Before I add a small new test file, is there an existing one that you know of that would be good to extend?

Sun, Feb 9, 9:50 AM · Restricted Project
davezarzycki created D74298: Honor -finline-functions and -finline-hint-functions at -O0.
Sun, Feb 9, 9:19 AM · Restricted Project

Fri, Jan 31

davezarzycki added a comment to rG01943a59f51d: Move verification of Sema::MaximumAlignment to a .cpp file.

Thanks!

Fri, Jan 31, 3:13 AM

Thu, Jan 30

davezarzycki added a comment to D69882: [libc++] [P0325] Implement to_array from LFTS with updates..

This breaks the test suite when built "Release" without assertions enabled (Fedora 31 on x86_64). Can we please revert this?
``
FAIL: libc++ :: std/con:q:qtainers/sequences/array/array.creation/to_array.fail.cpp (53333 of 61086)

  • TEST 'libc++ :: std/containers/sequences/array/array.creation/to_array.fail.cpp' FAILED ****

Command: ['/usr/bin/clang++', '-o', '/dev/null', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp', '-c', '-v', '-ftemplate-depth=270', '-fsyntax-only', '-Xclang', '-verify', '-Xclang', '-verify-ignore-unexpected=note', '-ferror-limit=1024', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/r/projects/libcxx/include/c++build', '-DSTDC_FORMAT_MACROS', '-DSTDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/r/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-Wno-error=user-defined-warnings', '-c']
Exit Code: 1

Standard Error:

clang version 9.0.0 (Fedora 9.0.0-1.fc31)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
"/usr/bin/clang-9" -cc1 -triple x86_64-unknown-linux-gnu -fsyntax-only -disable-free -disable-llvm-verifier -discard-value-names -main-file-name to_array.fail.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /usr/lib64/clang/9.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/r/projects/libcxx/include/c++build -D STDC_FORMAT_MACROS -D STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/r/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /usr/lib64/clang/9.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -Wno-error=user-defined-warnings -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/r -ftemplate-depth 270 -ferror-limit 1024 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -verify -verify-ignore-unexpected=note -faddrsig -x c++ /home/dave/s/lp/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp
clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
/home/dave/s/lp/libcxx/include
/tmp/_update_lc/r/projects/libcxx/include/c++build
/home/dave/s/lp/libcxx/test/support
/usr/local/include
/usr/lib64/clang/9.0.0/include
/usr/include
End of search list.
error: 'error' diagnostics expected but not seen:

File /home/dave/s/lp/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp Line 20: here
File /home/dave/s/lp/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp Line 25: here
File /home/dave/s/lp/libcxx/test/std/containers/sequences/array/array.creation/to_array.fail.cpp Line 30: here

error: 'error' diagnostics seen but not expected:

File /home/dave/s/lp/libcxx/include/array Line 499: static_assert failed due to requirement '!is_array_v<char [6]>' "[array.creation]/1: to_array does not accept multidimensional arrays."
File /home/dave/s/lp/libcxx/include/array Line 502: static_assert failed due to requirement 'is_constructible_v<char [6], char (&)[6]>' "[array.creation]/1: to_array requires copy constructible elements."
File /home/dave/s/lp/libcxx/include/array Line 487: cannot initialize an array element of type 'char' with an lvalue of type 'char [6]'
File /home/dave/s/lp/libcxx/include/array Line 487: cannot initialize an array element of type 'char' with an lvalue of type 'char [6]'
File /home/dave/s/lp/libcxx/include/array Line 487: cannot initialize an array element of type 'char' with an lvalue of type 'char [6]'
File /home/dave/s/lp/libcxx/include/array Line 487: suggest braces around initialization of subobject
File /home/dave/s/lp/libcxx/include/array Line 502: static_assert failed due to requirement 'is_constructible_v<MoveOnly, MoveOnly &>' "[array.creation]/1: to_array requires copy constructible elements."
File /home/dave/s/lp/libcxx/include/array Line 487: calling a private constructor of class 'MoveOnly'
File /home/dave/s/lp/libcxx/include/array Line 514: static_assert failed due to requirement 'is_move_constructible_v<const MoveOnly>' "[array.creation]/4: to_array requires move constructible elements."
Line 493: calling a private constructor of class 'MoveOnly'

13 errors generated.

Thu, Jan 30, 6:05 PM · Restricted Project

Jan 24 2020

davezarzycki committed rG5dda92fcb0ce: Add test for spaceship operator to __config (authored by davezarzycki).
Add test for spaceship operator to __config
Jan 24 2020, 10:32 AM
davezarzycki closed D72980: Add test for spaceship operator to __config.

5dda92fcb0ce9206f831aa7cddf24421dcf044d7

Jan 24 2020, 10:31 AM · Restricted Project, Restricted Project
davezarzycki committed rG0d61cd25a692: Verify that clang's max alignment is <= LLVM's max alignment (authored by davezarzycki).
Verify that clang's max alignment is <= LLVM's max alignment
Jan 24 2020, 9:38 AM
davezarzycki closed D73363: Verify that clang's max alignment is <= LLVM's max alignment.
Jan 24 2020, 9:37 AM · Restricted Project, Restricted Project
davezarzycki created D73363: Verify that clang's max alignment is <= LLVM's max alignment.
Jan 24 2020, 9:00 AM · Restricted Project, Restricted Project
davezarzycki added a comment to D73351: [libcxx] Define _LIBCPP_HAS_NO_SPACESHIP_OPERATOR using feature test macro.

The bots are probably green because libcxx tests against the installed compiler, not the just built compiler. Also, I'm fairly confident at this point that either no bots are testing libcxx against top-of-tree clang, or nobody is paying attention to the bots that do.

Jan 24 2020, 7:37 AM · Restricted Project
davezarzycki added a comment to D72998: [IR] Attribute/AttrBuilder: use Value::MaximumAlignment magic constant.

I understand not wanting to have trivial dependencies on IR for values like this, but what about creating llvm/Support/InternalLimits.h to hold values like this, and then *either* have llvm::Value::MaximumAlignment derive from the constant in the new file, or static_assert that the internal limit constant equals llvm::Value::MaximumAlignment?

Jan 24 2020, 7:26 AM · Restricted Project, Restricted Project

Jan 22 2020

davezarzycki added a comment to D72980: Add test for spaceship operator to __config.

Ping. Feedback would be appreciated. Thanks

Jan 22 2020, 3:58 AM · Restricted Project, Restricted Project

Jan 18 2020

davezarzycki updated the summary of D72980: Add test for spaceship operator to __config.
Jan 18 2020, 11:48 AM · Restricted Project, Restricted Project
davezarzycki updated the summary of D72980: Add test for spaceship operator to __config.
Jan 18 2020, 11:22 AM · Restricted Project, Restricted Project
davezarzycki updated subscribers of D72980: Add test for spaceship operator to __config.
Jan 18 2020, 11:19 AM · Restricted Project, Restricted Project
davezarzycki created D72980: Add test for spaceship operator to __config.
Jan 18 2020, 11:19 AM · Restricted Project, Restricted Project

Jan 15 2020

davezarzycki abandoned D72090: [Support] Fix races during thread pool teardown.

This should in theory be fixed by D70447.

Jan 15 2020, 8:55 AM · Restricted Project

Jan 9 2020

GitHub <noreply@github.com> committed rGfcb946490f84: Merge pull request #335 from davezarzycki/fix_build_shared_libs (authored by davezarzycki).
Merge pull request #335 from davezarzycki/fix_build_shared_libs
Jan 9 2020, 4:12 PM
davezarzycki committed rGf59e83e3b543: [CMake] Add missing dep when building with BUILD_SHARED_LIBS (authored by davezarzycki).
[CMake] Add missing dep when building with BUILD_SHARED_LIBS
Jan 9 2020, 4:12 PM

Jan 5 2020

davezarzycki accepted D70801: Add link to Code Review/Phabricator to Useful Links..

LGTM

Jan 5 2020, 6:21 AM
davezarzycki resigned from D69701: [Utils] Allow "on-the-fly" argument changes for update_test_check scripts.
Jan 5 2020, 6:21 AM · Restricted Project

Jan 4 2020

davezarzycki added a reviewer for D72090: [Support] Fix races during thread pool teardown: chandlerc.
Jan 4 2020, 4:29 AM · Restricted Project

Jan 3 2020

davezarzycki updated the diff for D72090: [Support] Fix races during thread pool teardown.

Rather than a targeted fix, let's just clean up the code and fix other bugs along the way.

Jan 3 2020, 4:56 AM · Restricted Project

Jan 2 2020

davezarzycki added a comment to D71620: [Attributor] AAValueConstantRange: Value range analysis using constant range.

This breaks top-of-tree from building and testing itself with optimizations and without asserts. Can we revert this for now?

FAIL: LLVM :: Transforms/Attributor/liveness.ll (43906 of 60305)
******************** TEST 'LLVM :: Transforms/Attributor/liveness.ll' FAILED ********************
Script:
--
: 'RUN: at line 2';   /tmp/_update_lc/r/bin/opt -attributor --attributor-disable=false -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=4 -S < /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll | /tmp/_update_lc/r/bin/FileCheck /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll --check-prefixes=CHECK,OLDPM
: 'RUN: at line 3';   /tmp/_update_lc/r/bin/opt -passes=attributor --attributor-disable=false -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=4 -S < /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll | /tmp/_update_lc/r/bin/FileCheck /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll --check-prefixes=CHECK,NEWPM
--
Exit Code: 2
Jan 2 2020, 3:08 PM · Restricted Project
davezarzycki added a comment to D72090: [Support] Fix races during thread pool teardown.

A related question, why is this code reinventing thread joining? Would anybody mind if I clean this up?

Jan 2 2020, 1:50 PM · Restricted Project
davezarzycki added a comment to D72060: [InstCombine] Preserve inbounds when merging with zero-index GEP (PR44423).

Is there a reproducer in progress?

Jan 2 2020, 1:09 PM · Restricted Project
davezarzycki created D72090: [Support] Fix races during thread pool teardown.
Jan 2 2020, 9:30 AM · Restricted Project
davezarzycki added a comment to D72060: [InstCombine] Preserve inbounds when merging with zero-index GEP (PR44423).

Bisecting identifies this change as breaking stage two testing on my Fedora 31 machine. Can we revert this?

FAIL: LLVM :: Transforms/Attributor/liveness.ll (44058 of 60349)
******************** TEST 'LLVM :: Transforms/Attributor/liveness.ll' FAILED ********************
Script:
--
: 'RUN: at line 2';   /tmp/_update_lc/t/bin/opt -attributor --attributor-disable=false -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=4 -S < /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll | /tmp/_update_lc/t/bin/FileCheck /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll --check-prefixes=CHECK,OLDPM
: 'RUN: at line 3';   /tmp/_update_lc/t/bin/opt -passes=attributor --attributor-disable=false -attributor-max-iterations-verify -attributor-annotate-decl-cs -attributor-max-iterations=4 -S < /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll | /tmp/_update_lc/t/bin/FileCheck /home/dave/s/lp/llvm/test/Transforms/Attributor/liveness.ll --check-prefixes=CHECK,NEWPM
--
Exit Code: 2
Jan 2 2020, 8:51 AM · Restricted Project

Dec 21 2019

davezarzycki committed rG75e500dd4713: Add missing `REQUIRES: hexagon-registered-target` (authored by davezarzycki).
Add missing `REQUIRES: hexagon-registered-target`
Dec 21 2019, 3:46 AM

Dec 12 2019

davezarzycki committed rG253b07402cd7: [CMake] Add missing deps found via LLVM's -DBUILD_SHARED_LIBS=TRUE (authored by davezarzycki).
[CMake] Add missing deps found via LLVM's -DBUILD_SHARED_LIBS=TRUE
Dec 12 2019, 1:02 PM

Dec 8 2019

davezarzycki committed rGb32490270b78: Revert "Driver: Don't look for libc++ headers in the install directory on… (authored by davezarzycki).
Revert "Driver: Don't look for libc++ headers in the install directory on…
Dec 8 2019, 6:50 AM
davezarzycki added a reverting change for rG198fbcb81749: Driver: Don't look for libc++ headers in the install directory on Android.: rGb32490270b78: Revert "Driver: Don't look for libc++ headers in the install directory on….
Dec 8 2019, 6:50 AM
davezarzycki added a comment to D71154: Driver: Don't look for libc++ headers in the install directory on Android..

Sorry, I had to revert this for breaking things. Please ping me when you have a new patch.

Dec 8 2019, 6:50 AM · Restricted Project

Dec 7 2019

davezarzycki added a comment to D71154: Driver: Don't look for libc++ headers in the install directory on Android..

Can we revert this? It doesn't seem to work on my Fedora 31 box:

FAIL: Clang :: Driver/android-no-installed-libcxx.cpp (9249 of 59761)
******************** TEST 'Clang :: Driver/android-no-installed-libcxx.cpp' FAILED ********************
Script:
--
: 'RUN: at line 4';   mkdir -p /tmp/_update_lc/r/tools/clang/test/Driver/Output/android-no-installed-libcxx.cpp.tmp/bin
: 'RUN: at line 5';   mkdir -p /tmp/_update_lc/r/tools/clang/test/Driver/Output/android-no-installed-libcxx.cpp.tmp/include/c++/v1
: 'RUN: at line 6';   /tmp/_update_lc/r/bin/clang -target aarch64-linux-android -ccc-install-dir /tmp/_update_lc/r/tools/clang/test/Driver/Output/android-no-installed-libcxx.cpp.tmp/bin    -stdlib=libc++ -fsyntax-only /home/dave/s/lp/clang/test/Driver/android-no-installed-libcxx.cpp -### 2>&1 | /tmp/_update_lc/r/bin/FileCheck /home/dave/s/lp/clang/test/Driver/android-no-installed-libcxx.cpp
--
Exit Code: 1
Dec 7 2019, 5:55 AM · Restricted Project

Dec 6 2019

davezarzycki added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

Third, I have not see a justification for why complexity for instruction prefix padding is necessary. All the effected CPUs support multi-byte nops, so we're talking about a *single micro op* difference between the nop form and prefix form. Can anyone point to a performance delta due to this? If not, I'd suggest we should start with the nop form, and then build the prefix form in a generic manner for all alignment varieties.

+1.

+1. Starting from just NOP padding sounds a simple and good first step. We can explore segment override prefixes in the future.

I think it's a good suggestion to start with NOP padding as the first step. In our previous experiment, we saw that the prefix padding was slight better than NOP padding, but not much. We will retest the NOP padding and go back to you.

Dec 6 2019, 1:54 AM · Restricted Project, Restricted Project

Nov 29 2019

davezarzycki committed rG06e5ebf8dbd9: [libcxx] Add -Wno-deprecated-copy to the test config (authored by davezarzycki).
[libcxx] Add -Wno-deprecated-copy to the test config
Nov 29 2019, 12:10 AM

Nov 27 2019

davezarzycki added a comment to D70435: Add links to Discord and Discourse to Useful Links.

Long-form is usually used to describe long in-depth journalism articles

Nov 27 2019, 9:04 AM · Restricted Project

Nov 23 2019

davezarzycki committed rGed33cb5b1474: [RISCV] Add missing REQUIRES to clang tests (authored by davezarzycki).
[RISCV] Add missing REQUIRES to clang tests
Nov 23 2019, 4:55 AM

Nov 20 2019

davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

There was this line:

But please wait a bit for @deadalnix / @craig.topper / @RKSimon.

Nov 20 2019, 6:57 AM · Restricted Project
davezarzycki committed rG257acbf6aee9: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY (authored by davezarzycki).
[SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY
Nov 20 2019, 6:35 AM
davezarzycki closed D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

257acbf6aee983227a3976d10d0086f3600f2bee

Nov 20 2019, 6:34 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 20 2019, 6:34 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 20 2019, 6:23 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

This patch fixes a bug introduced during the last round of feedback. By making the patch robust against the optimizer swapping operands to UADDO, the patch started tolerating the carry in bit being on the lefthand side of USUBO. That is wrong, and it's now fixed.

Nov 20 2019, 5:59 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
  1. Prettier ASCII art.
  2. Add robustness against the carry in bit swapping positions during optimization passes.
  3. Dropped use-once checks on the first uaddo/usubo node.
Nov 20 2019, 5:12 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 20 2019, 5:12 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Update the patch now that the DAG RAUW versus Combiner discussion has settled down. I personally like the former because it's simpler, but I do like the arguments in favor of the DAGCombiner. Either way, I'll defer to a code owner.

Nov 20 2019, 2:17 AM · Restricted Project
davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Unless I'm misunderstanding you, I think the many rounds of review feedback are clouding the code review. Lines 2874 and 2875 replace Carry1's result 0 in all cases (OR, XOR, and AND).

Doesn't line 2873 return if the opcode is not ISD::AND?

Nov 20 2019, 2:06 AM · Restricted Project

Nov 19 2019

davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Unless I'm misunderstanding you, I think the many rounds of review feedback are clouding the code review. Lines 2874 and 2875 replace Carry1's result 0 in all cases (OR, XOR, and AND).

Nov 19 2019, 11:46 PM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 19 2019, 10:37 PM · Restricted Project
davezarzycki added a comment to D70435: Add links to Discord and Discourse to Useful Links.

Can we add a link to https://reviews.llvm.org ? I'm surprised that there isn't one on the top page.

Nov 19 2019, 5:38 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 19 2019, 1:20 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 19 2019, 12:33 AM · Restricted Project

Nov 18 2019

davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

With the exception of some debate among the reviewers about what the right debug location should be, I think I've addressed all actionable comments so far.

Nov 18 2019, 9:20 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Switch to DAGCombiner::CombineTo

Nov 18 2019, 9:20 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 8:00 AM · Restricted Project
davezarzycki added a comment to D70237: [X86] Add more addcarry tests.

Thanks for the update. Where is the original source for sub_U256_without_i128_or_recursive? The IR is strange. It seems to use two different strategies for merging carry flags.

I don't really have a standalone implementation for it at the moment. It is code for this procedure for uint256 type: https://github.com/chfast/intx/blob/master/include/intx/intx.hpp#L528-L532. It is the same as the one for add, just + replaced with - and < with > for checking the carry flag. But probably LLVM has disturbed it a bit because add is proffered over sub in some places.

Nov 18 2019, 6:30 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 6:21 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 5:37 AM · Restricted Project
davezarzycki added a comment to D70237: [X86] Add more addcarry tests.

I ended up with optimizing my bigint library. The end result is - add_U256_without_i128_or_recursive which works better in current LLVM release and is also nicely reduced by D70079.
The analogous implementations of subtraction is added as sub_U256_without_i128_or_recursive test. This one should be interested to you @davezarzycki, your changes make it better, but it looks it is not perfect yet.

Nov 18 2019, 4:52 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 4:34 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 4:26 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
  1. Check TLI.isOperationLegalOrCustom().
  2. Handle AND being used to merge flags.
  3. More source comments.
Nov 18 2019, 2:46 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 18 2019, 12:45 AM · Restricted Project

Nov 17 2019

davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Hi everybody. Feedback is still appreciated. What's blocking this change from being committed?

Nov 17 2019, 11:44 PM · Restricted Project

Nov 15 2019

davezarzycki added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

Even though core2 isn't affected by the erratum, core2 code can run on CPUs that do have the bug (and core2 is a popular target for code that needs to run "everywhere"), therefore all target CPUs that predate a hardware fix really

So perf of all code/generic codegen will go down. This is not very acceptable. -1 for making this enabled by default for generic codegen.

I'm okay with this not being the default if we document somewhere that LLVM assumes that machines have up to date microcode installed.

So, my understanding is:

  1. There is a CPU bug, that in very rare but unspecified circumstances, can cause branches of all kinds (conditional-jump, fused-conditional-jump, unconditional jump, call, return, indirect jumps and calls?) to go to the wrong place, if the instruction crosses a 64-byte cacheline boundary.
  2. In order to fix that bug, the new CPU firmware disables the faster decoded-icache mechanism, falling back to the legacy decoder for any 32-byte block of code which ends with one of those jumps (because it works in 32-byte blocks, not 64-byte blocks). Falling back to the legacy decoder can have a sometimes-significant performance cost. Of course, this is not the _only_ reason that the CPU falls back to the legacy decoder, but it's a significant new one.

    This patch, then, spends some memory and icache space (and potentially decode-time) in order to try to get back the performance lost by the above fix. This can be worthwhile because if you can cause there not to be any 32-byte code sections that have a branch at the end, then the fallback to the legacy decoder won't trigger, and the performance will hopefully return to something comparable to the initial state. Unfortunately, while this ought to increase performance impact on all of the affected processors, it will have only negative effects on unaffected processors, since then you're spending memory and icache space, and not getting anything back in return.

    Similarly, if you're doing this extra alignment on code that isn't executed repeatedly out of the icache, it's also going to be useless.

    So, I'd say it's _not at all_ clear that it should be enabled by default.

    I'm also a bit confused as to why the default is set as it is. Why is the default only fused+jcc+jmp, not all branch types?
Nov 15 2019, 8:00 AM · Restricted Project, Restricted Project
davezarzycki added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

Even though core2 isn't affected by the erratum, core2 code can run on CPUs that do have the bug (and core2 is a popular target for code that needs to run "everywhere"), therefore all target CPUs that predate a hardware fix really

So perf of all code/generic codegen will go down. This is not very acceptable. -1 for making this enabled by default for generic codegen.

Nov 15 2019, 6:40 AM · Restricted Project, Restricted Project
davezarzycki added a comment to D70237: [X86] Add more addcarry tests.

When you update the tests, please remove the URLs. Also, what do you see they tests adding above and beyond what already exist in the file? For example, the nested structures design only changes the operands to getelementptr, but it doesn't change how the add/sub carry optimization works. And the by-reference versus by-value tests are also independent of the add/sub carry optimization.

Nov 15 2019, 5:26 AM · Restricted Project
davezarzycki added a comment to D70157: Align branches within 32-Byte boundary(NOP padding).

On x86, the preferred function alignment is 16 (https://github.com/llvm/llvm-project/blob/arcpatch-D70157/llvm/lib/Target/X86/X86ISelLowering.cpp#L1893), which is the default function alignment in text sections. If the cross-boundary decision is made with alignment=32 (--x86-align-branch-boundary=32) in mind, and the section alignment is still 16 (not increased to 32 or higher), the linker may place the section at an address which equals 16 modulo 32, the section contents will thus shift by 16. The instructions that do not cross the boundary in the object files may cross the boundary in the linker output. Have you considered increasing the section alignment to 32?

Shall we default to -mbranches-within-32B-boundaries if the specified -march= or -mtune= may be affected by the erratum?

Nov 15 2019, 5:16 AM · Restricted Project, Restricted Project
davezarzycki added a comment to D70237: [X86] Add more addcarry tests.

Yes, please update subcarry.ll too.

Nov 15 2019, 2:18 AM · Restricted Project

Nov 14 2019

davezarzycki committed rG39af72378dd0: Unbreak the clang test suite when hexagon-link is not available (authored by davezarzycki).
Unbreak the clang test suite when hexagon-link is not available
Nov 14 2019, 10:56 PM
davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
  1. Why is UADDO/USUBO an intrinsic but ADDCARRY/SUBCARRY is not? This is unfortunate given that clang and perhaps other languages have addcarry/subcarry intrinsics.

I don't know the full history, but my guess is that the *.with.overflow intrinsics were assumed to be good enough to hold the patterns together through IR optimization, and the backend could relatively easily map those to DAG nodes. If that's not correct, then we could make a case for adding to, extending, or replacing the current set of intrinsics.

That does lead to questions I was already wondering about:

  1. Can we do this transform in IR (instcombine)?
  2. There are tests with intrinsics and tests with "raw" IR - are we missing IR transforms that should canonicalize to 1 form or the other?
Nov 14 2019, 7:21 AM · Restricted Project
davezarzycki added a reviewer for D70237: [X86] Add more addcarry tests: craig.topper.

A few comments / questions:

  1. I'm not a regular contributor to LLVM, so please wait for somebody else (like @craig.topper, @RKSimon, or @spatel) to sign off on this.
  2. Once one has "add carry", one immediately wants "sub carry/borrow". Please consider adding tests to subcarry.ll.
  3. What is add256_1 trying to do and how is it different than add256_2?
  4. Finally, can you rename your examples to be more descriptive? In particular, if you look at early parts of the file, you'll see that there are a bunch of definitions with simple names like "add256" where 256 (etc) refers to native LLVM types, not aggregates. Perhaps names like the tests I added "sub_U320_without_i128_or" which strongly implies at the implementation strategy.
Nov 14 2019, 6:54 AM · Restricted Project
davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Thank you @spatel for adding more reviewers. Questions I have as a non-expert of LLVM design:

Nov 14 2019, 12:32 AM · Restricted Project

Nov 13 2019

davezarzycki committed rG1d55c9e59ebf: [libcxx testing] Fix -Wtautological-overlap-compare bug (authored by davezarzycki).
[libcxx testing] Fix -Wtautological-overlap-compare bug
Nov 13 2019, 1:01 AM
davezarzycki added a comment to D69292: Proposal to add -Wtautological-compare to -Wall.

Let's just fix the bug: 1d55c9e59ebf3f3ff572d42da433b2f72f1ce900

Nov 13 2019, 1:00 AM · Restricted Project

Nov 12 2019

davezarzycki updated subscribers of D69292: Proposal to add -Wtautological-compare to -Wall.

This broke the libcxx test suite:

FAIL: libc++ :: libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp (50769 of 59296)
******************** TEST 'libc++ :: libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp' FAILED ********************
Command: ['/p/tllvm/bin/clang++', '-o', '/tmp/_update_lc/t/projects/libcxx/test/libcxx/debug/containers/Output/db_sequence_container_iterators.multithread.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/t/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-constant-evaluated', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 10.0.0 (https://github.com/llvm/llvm-project.git d8b6b1114307558a5245de3806bb70f53f6f3efe)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /p/tllvm/bin
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/p/tllvm/bin/clang-10" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name db_sequence_container_iterators.multithread.pass.cpp -mrelocation-model static -mthread-model posix -mframe-pointer=all -fmath-errno -fno-rounding-math -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -nostdinc++ -resource-dir /p/tllvm/lib64/clang/10.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/t/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/t/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /p/tllvm/lib64/clang/10.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-constant-evaluated -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/t/projects/libcxx/test/libcxx/debug/containers -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fgnuc-version=4.2.1 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/t/projects/libcxx/test/libcxx/debug/containers/Output/db_sequence_container_iterators.multithread.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp
clang -cc1 version 10.0.0 based upon LLVM 10.0.0git default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/t/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /p/tllvm/lib64/clang/10.0.0/include
 /usr/include
End of search list.
In file included from /home/dave/s/lp/libcxx/test/libcxx/debug/containers/db_sequence_container_iterators.multithread.pass.cpp:27:
/home/dave/s/lp/libcxx/test/support/container_debug_tests.h:66:26: error: overlapping comparisons always evaluate to false [-Werror,-Wtautological-overlap-compare]
  return CT_Vector >= CT && CT_ForwardList <= CT;
         ~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/support/container_debug_tests.h:70:23: error: overlapping comparisons always evaluate to false [-Werror,-Wtautological-overlap-compare]
  return CT_Map >= CT && CT_MultiSet <= CT;
         ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/support/container_debug_tests.h:74:32: error: overlapping comparisons always evaluate to false [-Werror,-Wtautological-overlap-compare]
  return CT_UnorderedMap >= CT && CT_UnorderedMultiSet <= CT;
         ~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3 errors generated.
--
Nov 12 2019, 11:47 PM · Restricted Project
davezarzycki abandoned D69841: Target Ivy bridge on macOS Mojave and later.

Okay. I'm going to abandon this patch on the assumption that Apple has an internal bug tracking this.

Nov 12 2019, 11:02 PM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Added commentary about how it's impossible for both carry bits in the diamond to be set at the same time.

Nov 12 2019, 8:00 AM · Restricted Project
davezarzycki added inline comments to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 12 2019, 7:04 AM · Restricted Project
davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Rebased with regenerated tests.

Nov 12 2019, 4:16 AM · Restricted Project
davezarzycki committed rGa9018fddf9ba: [X86] Add more add/sub carry tests (authored by davezarzycki).
[X86] Add more add/sub carry tests
Nov 12 2019, 1:44 AM
davezarzycki closed D70077: [X86] Add more add/sub carry tests.

a9018fddf9ba17e53a35674bf0a93e78382c4c23

Nov 12 2019, 1:44 AM · Restricted Project
davezarzycki added a comment to D69841: Target Ivy bridge on macOS Mojave and later.

@bob.wilson – Ping. While Ivy Bridge (or really, Sandy Bridge) has AVX1, which enables faster memcpy, memset, and even memcmp (for common scenarios). If there is something I'm missing? If you can't explain why, that's okay. :-)

Nov 12 2019, 1:21 AM · Restricted Project
davezarzycki abandoned D69044: [X86] Allow up to 4 loads per inline memcmp().

I think we reasoned our way out of this.

Nov 12 2019, 1:21 AM · Restricted Project

Nov 11 2019

davezarzycki updated the diff for D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
  1. Merged the minor System Z fixes into the prerequisite patch: https://reviews.llvm.org/D70077
  2. Added a paranoia check to ensure that the carry in value is i1.
Nov 11 2019, 1:16 PM · Restricted Project
davezarzycki updated the diff for D70077: [X86] Add more add/sub carry tests.

Removed dso_local and local_unnamed_addr #0 tags. Also updated the System Z tests based to not be overly strict based on feedback from @uweigand.

Nov 11 2019, 12:02 PM · Restricted Project
davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

With all the targets enabled, only System Z fails. It looks like somebody just needs to update the assembly.

Nov 11 2019, 7:00 AM · Restricted Project
davezarzycki created D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.
Nov 11 2019, 6:32 AM · Restricted Project
davezarzycki added a comment to D70079: [SelectionDAG] Combine U{ADD,SUB}O diamonds into {ADD,SUB}CARRY.

Can somebody CC the right System Z experts? A couple of their tests fail after this change.

Nov 11 2019, 6:32 AM · Restricted Project
davezarzycki created D70077: [X86] Add more add/sub carry tests.
Nov 11 2019, 5:56 AM · Restricted Project

Nov 7 2019

davezarzycki added a comment to D68837: [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr..

https://reviews.llvm.org/D69940 should fix the problems.

Nov 7 2019, 5:23 AM · Restricted Project
davezarzycki added a comment to D68837: [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr..

Would you object if I revert this? Bots/CI are fairly pointless if fixes/reverts aren't timely.

Nov 7 2019, 4:10 AM · Restricted Project

Nov 6 2019

davezarzycki added a comment to D68837: [libc++][P0202] Marked algorithms copy/copy_n/copy_if/copy_backward constexpr..

This breaks testing on Fedora 31 (x86_64). Is there something I'm doing wrong?

FAIL: libc++ :: std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp (50801 of 59142)
******************** TEST 'libc++ :: std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp' FAILED ********************
Command: ['/usr/bin/clang++', '-o', '/tmp/_update_lc/r/projects/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/Output/copy_backward.pass.cpp.o', '-x', 'c++', '/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp', '-c', '-v', '-ftemplate-depth=270', '-Werror=thread-safety', '-std=c++2a', '-include', '/home/dave/s/lp/libcxx/test/support/nasty_macros.h', '-nostdinc++', '-I/home/dave/s/lp/libcxx/include', '-I/tmp/_update_lc/r/projects/libcxx/include/c++build', '-D__STDC_FORMAT_MACROS', '-D__STDC_LIMIT_MACROS', '-D__STDC_CONSTANT_MACROS', '-I/home/dave/s/lp/libcxx/test/support', '-DLIBCXX_FILESYSTEM_STATIC_TEST_ROOT="/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT="/tmp/_update_lc/r/projects/libcxx/test/filesystem/Output/dynamic_env"', '-DLIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER="/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py"', '-D_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER', '-Wall', '-Wextra', '-Werror', '-Wuser-defined-warnings', '-Wshadow', '-Wno-unused-command-line-argument', '-Wno-attributes', '-Wno-pessimizing-move', '-Wno-c++11-extensions', '-Wno-user-defined-literals', '-Wno-noexcept-type', '-Wsign-compare', '-Wunused-variable', '-Wunused-parameter', '-Wunreachable-code', '-c']
Exit Code: 1
Standard Error:
--
clang version 9.0.0 (Fedora 9.0.0-1.fc31)
Target: x86_64-unknown-linux-gnu
Thread model: posix
InstalledDir: /usr/bin
Found candidate GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
Found candidate GCC installation: /usr/lib/gcc/x86_64-redhat-linux/9
Selected GCC installation: /usr/bin/../lib/gcc/x86_64-redhat-linux/9
Candidate multilib: .;@m64
Candidate multilib: 32;@m32
Selected multilib: .;@m64
 "/usr/bin/clang-9" -cc1 -triple x86_64-unknown-linux-gnu -emit-obj -mrelax-all -disable-free -disable-llvm-verifier -discard-value-names -main-file-name copy_backward.pass.cpp -mrelocation-model static -mthread-model posix -mdisable-fp-elim -fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables -fuse-init-array -target-cpu x86-64 -dwarf-column-info -debugger-tuning=gdb -v -coverage-notes-file /tmp/_update_lc/r/projects/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/Output/copy_backward.pass.cpp.gcno -nostdinc++ -resource-dir /usr/lib64/clang/9.0.0 -include /home/dave/s/lp/libcxx/test/support/nasty_macros.h -I /home/dave/s/lp/libcxx/include -I /tmp/_update_lc/r/projects/libcxx/include/c++build -D __STDC_FORMAT_MACROS -D __STDC_LIMIT_MACROS -D __STDC_CONSTANT_MACROS -I /home/dave/s/lp/libcxx/test/support -D "LIBCXX_FILESYSTEM_STATIC_TEST_ROOT=\"/home/dave/s/lp/libcxx/test/std/input.output/filesystems/Inputs/static_test_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_ROOT=\"/tmp/_update_lc/r/projects/libcxx/test/filesystem/Output/dynamic_env\"" -D "LIBCXX_FILESYSTEM_DYNAMIC_TEST_HELPER=\"/usr/bin/python /home/dave/s/lp/libcxx/test/support/filesystem_dynamic_test_helper.py\"" -D _LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER -internal-isystem /usr/local/include -internal-isystem /usr/lib64/clang/9.0.0/include -internal-externc-isystem /include -internal-externc-isystem /usr/include -Werror=thread-safety -Wall -Wextra -Werror -Wuser-defined-warnings -Wshadow -Wno-unused-command-line-argument -Wno-attributes -Wno-pessimizing-move -Wno-c++11-extensions -Wno-user-defined-literals -Wno-noexcept-type -Wsign-compare -Wunused-variable -Wunused-parameter -Wunreachable-code -std=c++2a -fdeprecated-macro -fdebug-compilation-dir /tmp/_update_lc/r/projects/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy -ftemplate-depth 270 -ferror-limit 19 -fmessage-length 0 -fno-implicit-modules -fobjc-runtime=gcc -fcxx-exceptions -fexceptions -fdiagnostics-show-option -faddrsig -o /tmp/_update_lc/r/projects/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/Output/copy_backward.pass.cpp.o -x c++ /home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp
clang -cc1 version 9.0.0 based upon LLVM 9.0.0 default target x86_64-unknown-linux-gnu
ignoring nonexistent directory "/include"
#include "..." search starts here:
#include <...> search starts here:
 /home/dave/s/lp/libcxx/include
 /tmp/_update_lc/r/projects/libcxx/include/c++build
 /home/dave/s/lp/libcxx/test/support
 /usr/local/include
 /usr/lib64/clang/9.0.0/include
 /usr/include
End of search list.
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:28:9: error: variables defined in a constexpr function must be initialized
    int ia[N];
        ^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:42:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<bidirectional_iterator<const int*>, bidirectional_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = bidirectional_iterator<const int *>, OutIter = bidirectional_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:43:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<bidirectional_iterator<const int*>, random_access_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = bidirectional_iterator<const int *>, OutIter = random_access_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:44:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<bidirectional_iterator<const int*>, int*>();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = bidirectional_iterator<const int *>, OutIter = int *]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:46:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<random_access_iterator<const int*>, bidirectional_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = random_access_iterator<const int *>, OutIter = bidirectional_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:47:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<random_access_iterator<const int*>, random_access_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = random_access_iterator<const int *>, OutIter = random_access_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:48:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<random_access_iterator<const int*>, int*>();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = random_access_iterator<const int *>, OutIter = int *]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:50:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<const int*, bidirectional_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = const int *, OutIter = bidirectional_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:51:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<const int*, random_access_iterator<int*> >();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = const int *, OutIter = random_access_iterator<int *>]
test_copy_backward()
^
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:52:5: error: no matching function for call to 'test_copy_backward'
    test_copy_backward<const int*, int*>();
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/dave/s/lp/libcxx/test/std/algorithms/alg.modifying.operations/alg.copy/copy_backward.pass.cpp:25:1: note: candidate template ignored: substitution failure [with InIter = const int *, OutIter = int *]
test_copy_backward()
^
10 errors generated.
--
Nov 6 2019, 1:24 PM · Restricted Project

Nov 5 2019

davezarzycki added a comment to D69044: [X86] Allow up to 4 loads per inline memcmp().

I don't remember cases where we had very large constant compares (though we do have quite a lot of small ones). I'll run our internal benchmarks with this change.

I've ran our benchmarks, I see no improvement from the change.

Nov 5 2019, 7:32 AM · Restricted Project
davezarzycki added a comment to D69841: Target Ivy bridge on macOS Mojave and later.

Hi @bob.wilson – Am I missing something here?

Nov 5 2019, 4:25 AM · Restricted Project
davezarzycki created D69841: Target Ivy bridge on macOS Mojave and later.
Nov 5 2019, 4:17 AM · Restricted Project