llvm-project/llvm/lib
whitequark 7c4fe0e9a3 [SelectionDAG] Fix calling convention in expansion of ?MULO.
The SMULO/UMULO DAG nodes, when not directly supported by the target,
expand to a multiplication twice as wide. In case that the resulting
type is not legal, an __mul?i3 intrinsic is used. Since the type is
not legal, the legalizer cannot directly call the intrinsic with
the wide arguments; instead, it "pre-lowers" them by splitting them
in halves.

The "pre-lowering" code in essence made assumptions about
the calling convention, specifically that i(N*2) values will be
split into two iN values and passed in consecutive registers in
little-endian order. This, naturally, breaks on a big-endian system,
such as our OR1K out-of-tree backend.

Thanks to James Miller <james@aatch.net> for help in debugging.

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

llvm-svn: 283203
2016-10-04 09:07:49 +00:00
..
Analysis Make GlobalsAA ignore dead constant expressions. 2016-10-04 00:03:55 +00:00
AsmParser [AsmParser] Remove unused partial template specialization. 2016-09-22 22:02:59 +00:00
Bitcode Use StringRef in Pass/PassManager APIs (NFC) 2016-10-01 02:56:57 +00:00
CodeGen [SelectionDAG] Fix calling convention in expansion of ?MULO. 2016-10-04 09:07:49 +00:00
DebugInfo Do not pass a superblock to PDBFileBuilder. 2016-09-30 20:52:12 +00:00
Demangle Avoid using alignas and constexpr. 2016-09-06 20:36:24 +00:00
ExecutionEngine Use StringRef instead of raw pointer in ExecutionEngine 2016-10-01 06:22:04 +00:00
Fuzzer [libFuzzer] remove dfsan support and some related stale code. This is not being used and as is is pretty weak anyway 2016-10-04 06:08:46 +00:00
IR Don't drop the llvm. prefix when renaming. 2016-10-03 15:51:42 +00:00
IRReader
LTO Use StringRef in LTOCodegenerator (NFC) 2016-10-01 01:18:23 +00:00
LibDriver Object: Replace NewArchiveIterator with a simpler NewArchiveMember class. NFCI. 2016-06-29 22:27:42 +00:00
LineEditor Fix Clang-tidy modernize-deprecated-headers warnings in some files; other minor fixes. 2016-03-28 17:40:08 +00:00
Linker DebugInfo: New metadata representation for global variables. 2016-09-13 01:12:59 +00:00
MC Revert "Use getSize instead of data().size(). NFC." 2016-10-03 18:01:10 +00:00
Object [Object] Define Archive::isEmpty(). 2016-09-30 17:54:31 +00:00
ObjectYAML [macho2yaml] Don't write empty linkedit data 2016-08-17 21:46:04 +00:00
Option Generalize ArgList::AddAllArgs more 2016-09-29 19:47:58 +00:00
Passes Fix test after renaming -name-anon-functions pass to -name-anon-globals 2016-09-16 17:18:16 +00:00
ProfileData NFC Add const 2016-09-30 21:05:55 +00:00
Support Use StringRef for MemoryBuffer identifier API (NFC) 2016-10-01 16:38:28 +00:00
TableGen Fix some Clang-tidy modernize-use-using and Include What You Use warnings; other minor fixes. 2016-08-23 17:14:32 +00:00
Target Consistent fp denormal mode names. NFC. 2016-10-04 08:03:36 +00:00
Transforms [PruneEH] Be correct in the face IPO 2016-10-03 19:35:30 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
LLVMBuild.txt Add an c++ itanium demangler to llvm. 2016-09-06 19:16:48 +00:00