llvm-project/llvm/lib
Diana Picus 02e11010b2 [ARM] GlobalISel: Add support for i32 modulo
Add support for modulo for targets that have hardware division and for
those that don't. When hardware division is not available, we have to
choose the correct libcall to use. This is generally straightforward,
except for AEABI.

The AEABI variant is trickier than the other libcalls because it
returns { quotient, remainder }, instead of just one value like the
other libcalls that we've seen so far. Therefore, we need to use custom
lowering for it. However, we don't want to have too much special code,
so we refactor the target-independent code in the legalizer by adding a
helper for replacing an instruction with a libcall. This helper is used
by the legalizer itself when dealing with simple calls, and also by the
custom ARM legalization for the more complicated AEABI divmod calls.

llvm-svn: 305459
2017-06-15 10:53:31 +00:00
..
Analysis [ValueTracking] Correct early out in computeKnownBitsFromOperator to work with non power of 2 bit widths 2017-06-14 17:04:59 +00:00
AsmParser Add dependency from AsmParser to BinaryFormat. 2017-06-07 04:24:33 +00:00
BinaryFormat Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
Bitcode IR: Tweak the API around adding modules to the summary index. 2017-06-14 22:35:27 +00:00
CodeGen [ARM] GlobalISel: Add support for i32 modulo 2017-06-15 10:53:31 +00:00
DebugInfo Specified ReportError as noreturn friendly to old compilers. 2017-06-14 17:32:53 +00:00
Demangle [ItaniumDemangle] Fix a exponential string copying bug 2017-05-28 23:24:52 +00:00
ExecutionEngine Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
Fuzzer Fixing section name for Darwin platforms for sanitizer coverage 2017-06-14 23:40:25 +00:00
IR Align definition of DW_OP_plus with DWARF spec [3/3] 2017-06-14 13:14:38 +00:00
IRReader Timer: Track name and description. 2016-11-18 19:43:18 +00:00
LTO IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
LineEditor
Linker Support for taking the max of module flags when linking, use for PIE/PIC 2017-05-23 00:08:00 +00:00
MC MC, Object: Reserve a section type, SHT_LLVM_ODRTAB, for the ODR table. 2017-06-14 18:52:12 +00:00
Object MC, Object: Reserve a section type, SHT_LLVM_ODRTAB, for the ODR table. 2017-06-14 18:52:12 +00:00
ObjectYAML MC, Object: Reserve a section type, SHT_LLVM_ODRTAB, for the ODR table. 2017-06-14 18:52:12 +00:00
Option Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Passes [EarlyCSE] Add option to use MemorySSA for function simplification run of EarlyCSE (off by default). 2017-06-10 15:20:03 +00:00
ProfileData Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Support Hide dbgs() stream for when built with -fmodules. 2017-06-14 19:16:22 +00:00
TableGen Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Target [ARM] GlobalISel: Add support for i32 modulo 2017-06-15 10:53:31 +00:00
Testing [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00
ToolDrivers Add dependency from LibDriver to BinaryFormat. 2017-06-07 04:39:50 +00:00
Transforms Fixing section name for Darwin platforms for sanitizer coverage 2017-06-14 23:40:25 +00:00
XRay Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
CMakeLists.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00
LLVMBuild.txt [gtest] Create a shared include directory for gtest utilities. 2017-06-14 16:41:50 +00:00