Go to file
Nikita Popov 4246106aba [ConstantRange] Add unsigned and signed intersection types
The intersection of two ConstantRanges may consist of two disjoint
ranges. As we can only return one range as the result, we need to
return one of the two possible ranges that cover both. Currently the
result is picked based on set size. However, this is not always
optimal: If we're in an unsigned context, we'd prefer to get a large
unsigned range over a small signed range -- the latter effectively
becomes a full set in the unsigned domain.

This revision adds a PreferredRangeType, which can be either Smallest,
Unsigned or Signed. Smallest is the current behavior and Unsigned and
Signed are new variants that prefer not to wrap the unsigned/signed
domain. The new type isn't used anywhere yet (but SCEV will be a good
first user, see D60035).

I've also added some comments to illustrate the various cases in
intersectWith(), which should hopefully make it more obvious what is
going on.

Differential Revision: https://reviews.llvm.org/D59959

llvm-svn: 357873
2019-04-07 18:44:36 +00:00
clang [clang-format] Fix Bug 41407 2019-04-06 23:10:11 +00:00
clang-tools-extra Make SourceManager::createFileID(UnownedTag, ...) take a const llvm::MemoryBuffer* 2019-04-04 21:06:41 +00:00
compiler-rt [TSan][libdispatch] Remove Darwin-only version of fully-ported tests 2019-04-06 01:41:40 +00:00
debuginfo-tests Set config.lit_tools_dir, which is needed by lit.llvm.initialize. 2018-11-06 21:54:27 +00:00
libclc travis: Add LLVM-8 build 2019-03-27 21:28:31 +00:00
libcxx [libc++][CMake] Make sure the benchmarks link against libc++abi 2019-04-05 21:05:32 +00:00
libcxxabi Fix PR41395 - __cxa_vec_new may overflow in allocation size calculation. 2019-04-05 20:38:43 +00:00
libunwind Move the alias definition of unw_getcontext to within !defined(__USING_SJLJ_EXCEPTIONS__) 2019-04-04 17:50:14 +00:00
lld ELF: De-template ELFFileBase. NFCI. 2019-04-05 20:16:26 +00:00
lldb Unify random timeouts throughout LLDB and make them configurable. 2019-04-05 22:43:42 +00:00
llgo IR: Support parsing numeric block ids, and emit them in textual output. 2019-03-22 18:27:13 +00:00
llvm [ConstantRange] Add unsigned and signed intersection types 2019-04-07 18:44:36 +00:00
openmp After rL357618, quote ${CMAKE_THREAD_LIBS_INIT} so CMake does not 2019-04-05 22:19:40 +00:00
parallel-libs Fix typos throughout the license files that somehow I and my reviewers 2019-01-21 09:52:34 +00:00
polly Apply include-what-you-use #include removal suggestions. NFC. 2019-03-28 20:19:49 +00:00
pstl [pstl] Improve the parallel version of std::equal 2019-04-03 17:34:57 +00:00
.arcconfig Update monorepo .arcconfig with new project callsign. 2019-01-31 14:34:59 +00:00
.clang-format Add .clang-tidy and .clang-format files to the toplevel of the 2019-01-29 16:43:16 +00:00
.clang-tidy Disable tidy checks with too many hits 2019-02-01 11:20:13 +00:00
README.md

README.md

The LLVM Compiler Infrastructure

This directory and its subdirectories contain source code for LLVM, a toolkit for the construction of highly optimized compilers, optimizers, and runtime environments.