llvm-project/llvm/include/llvm
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
..
ADT [ADT] Partial re-commit of r303383. Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes (NFC). 2017-06-14 21:42:24 +00:00
Analysis [IR] Stop deleting other signatures of User::operator new when we override one signature in a class derived from User 2017-06-12 23:25:15 +00:00
AsmParser
BinaryFormat MC, Object: Reserve a section type, SHT_LLVM_ODRTAB, for the ODR table. 2017-06-14 18:52:12 +00:00
Bitcode Write summaries for merged modules when splitting modules for ThinLTO. 2017-06-08 23:01:49 +00:00
CodeGen [ARM] GlobalISel: Add support for i32 modulo 2017-06-15 10:53:31 +00:00
Config [cmake] Enable reverse iteration by default through build macro 2017-06-06 00:36:09 +00:00
DebugInfo [DWARF] Minor coding style modifications, no functionality change. 2017-06-14 23:40:26 +00:00
Demangle Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00
ExecutionEngine Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
IR IR: Tweak the API around adding modules to the summary index. 2017-06-14 22:35:27 +00:00
IRReader
LTO IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
LineEditor Apply clang-tidy's misc-move-constructor-init throughout LLVM. 2016-05-27 14:27:24 +00:00
Linker [Linker] Provide callback for internalization 2017-03-13 18:08:11 +00:00
MC [WebAssembly] Cleanup WebAssemblyWasmObjectWriter 2017-06-13 18:51:50 +00:00
Object Improve error messages in order to help with fixing a big-endian bug. 2017-06-13 18:17:36 +00:00
ObjectYAML Resubmit "[codeview] Make obj2yaml/yaml2obj support .debug$S..." 2017-06-14 15:59:27 +00:00
Option Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Passes [PM/ThinLTO] Port the ThinLTO pipeline (both components) to the new PM. 2017-06-01 11:39:39 +00:00
ProfileData Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Support [formatv] Add the ability to specify a fill character when aligning. 2017-06-15 03:06:38 +00:00
TableGen [TableGen] Remove a couple unused methods from Record that take a StringRef argument. NFC 2017-06-02 05:56:47 +00:00
Target IR: Replace the "Linker Options" module flag with "llvm.linker.options" named metadata. 2017-06-12 20:10:48 +00:00
Testing/Support Add an include of gtest-printers.h to appease the buildbots. 2017-06-14 16:49:38 +00:00
ToolDrivers/llvm-lib Move lib/LibDriver -> lib/ToolDrivers/llvm-lib. NFCI. 2017-05-13 22:06:46 +00:00
Transforms Hide dbgs() stream for when built with -fmodules. 2017-06-14 19:16:22 +00:00
XRay [XRay][tools] Add option to llvm-xray extract to symbolize functions 2017-04-18 23:23:54 +00:00
CMakeLists.txt Support: Add a VCSRevision.h header file. 2017-04-13 01:26:12 +00:00
InitializePasses.h Change code formatting to look like the surrounding code 2017-06-02 23:07:58 +00:00
LinkAllIR.h Move Object format code to lib/BinaryFormat. 2017-06-07 03:48:56 +00:00
LinkAllPasses.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
Pass.h Sort the remaining #include lines in include/... and lib/.... 2017-06-06 11:49:48 +00:00
PassAnalysisSupport.h Reverted: Track validity of pass results 2017-01-15 10:23:18 +00:00
PassInfo.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
PassRegistry.h
PassSupport.h [LegacyPassManager] Remove TargetMachine constructors 2017-05-18 17:21:13 +00:00
module.modulemap Add BinaryFormat module definition 2017-06-07 17:16:25 +00:00
module.modulemap.build Fix module map to create a module for the configured header Config/abi-breaking.h 2016-12-01 19:08:38 +00:00