1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 19:23:23 +01:00
llvm-mirror/utils
Daniel Sanders 45f30d3e9a [globalisel][tablegen] Import signextload and zeroextload.
Allow a pattern rewriter to be installed in CodeGenDAGPatterns and use it to
correct situations where SelectionDAG and GlobalISel disagree on
representation. For example, it would rewrite:
  (sextload:i32 $ptr)<<unindexedload>><<sextload>><<sextloadi16>
to:
  (sext:i32 (load:i16 $ptr)<<unindexedload>>)

I'd have preferred to replace the fragments and have the expansion happen
naturally as part of PatFrag expansion but the type inferencing system can't
cope with loads of types narrower than those mentioned in register classes.
This is because the SDTCisInt's on the sext constrain both the result and
operand to the 'legal' integer types (where legal is defined as 'a register
class can contain the type') which immediately rules the narrower types out.
Several targets (those with only one legal integer type) would then go on to
crash on the SDTCisOpSmallerThanOp<> when it removes all the possible types
for the result of the extend.

Also, improve isObviouslySafeToFold() slightly to automatically return true for
neighbouring instructions. There can't be any re-ordering problems if
re-ordering isn't happenning. We'll need to improve it further to handle
sign/zero-extending loads when the extend and load aren't immediate neighbours
though.

llvm-svn: 317971
2017-11-11 03:23:44 +00:00
..
bugpoint
count
crosstool
docker Added optional validation of svn sources to Dockerfiles. 2017-09-15 13:35:54 +00:00
emacs
FileCheck Add a -D flag to FileCheck to define variables 2017-11-07 13:24:44 +00:00
fpcmp
gdb-scripts Make the Twine pretty-printer work with GDB 7.11 2017-06-04 03:27:12 +00:00
git
git-svn [git] Update the llvm git helper script to work correctly with the 2017-09-16 02:13:35 +00:00
jedit
kate
KillTheDoctor KillTheDoctor.cpp: Appease cases on case-senstitive host, like mingw on linux. 2016-12-23 01:39:26 +00:00
lint
lit [debuginfo-tests] Make debuginfo-tests work in a standard configuration. 2017-11-10 20:57:57 +00:00
llvm-build
llvm-lit [lit] Actually do normalize the case of files in the config map. 2017-09-21 21:27:11 +00:00
LLVMVisualizers Improve natvis for llvm::SmallString so that it correctly displays only the valid portion of the string 2016-12-21 01:05:29 +00:00
Misc
not Convenience/safety fix for llvm::sys::Execute(And|No)Wait 2017-09-13 17:03:37 +00:00
PerfectShuffle
release merge-request.sh: Update to use new "Fixed by Commit(s)" field 2017-09-15 02:25:22 +00:00
sanitizers Fix UBSan bots by blacklisting bits/stl_tree.h. 2017-01-13 17:30:10 +00:00
TableGen [globalisel][tablegen] Import signextload and zeroextload. 2017-11-11 03:23:44 +00:00
Target/ARM
testgen
textmate
unittest Force #define GTEST_LANG_CXX11. 2017-10-27 21:12:28 +00:00
valgrind valgrind/x86_64-pc-linux-gnu.supp: Suppress also /bin/bash. 2014-09-24 04:38:20 +00:00
vim Add strictfp attribute to prevent unwanted optimizations of libm calls 2017-08-14 21:15:13 +00:00
vscode Adding VSCode syntax colorizer to utils (generated from textmate colorizer). 2017-05-09 17:13:37 +00:00
yaml-bench
abtest.py AsmPrinter: mark the beginning and the end of a function in verbose mode 2017-05-23 21:22:16 +00:00
bisect
bisect-skip-count Fix bug in bisect-skip-count not using passed-in arguments 2017-03-04 03:23:41 +00:00
check-each-file Added support for C++ compilation. 2004-02-26 23:02:25 +00:00
clang-parse-diagnostics-file [utils] Tweak utils/clang-parse-diagnostics-file to ignore autoconf diagnostics. 2012-12-22 00:47:06 +00:00
codegen-diff Add debug variable. 2003-10-16 23:46:01 +00:00
countloc.sh
create_ladder_graph.py
DSAclean.py
DSAextract.py Revert 'Fix a typo 'iff' => 'if''. iff is an abreviation of if and only if. See: http://en.wikipedia.org/wiki/If_and_only_if Commit 164767 2012-09-27 10:14:43 +00:00
extract_symbols.py
findmisopt
findoptdiff
findsym.pl
GenLibDeps.pl Remove bit-rotten CppBackend. 2016-05-05 14:35:40 +00:00
GetRepositoryPath Fix the build for git repositories with multiple remotes. 2013-09-16 09:25:49 +00:00
GetSourceVersion
getsrcs.sh
lldbDataFormatters.py
llvm-compilers-check Remove bogus configure check 2014-06-19 19:31:11 +00:00
llvm-native-gxx Convert a bunch of uses of 'bytecode' into 'bitcode'. This 2010-09-29 20:09:55 +00:00
llvm.grm Remove the linker_private and linker_private_weak linkages. 2014-03-13 23:18:37 +00:00
LLVMBuild.txt
llvmdo Remove CVS artifacts. 2010-08-04 16:11:24 +00:00
llvmgrep
makellvm Update makellvm to return correct result code. 2008-08-13 20:43:56 +00:00
prepare-code-coverage-artifact.py [utils] coverage: Add help text about the --restrict flag (NFC) 2017-02-09 19:37:18 +00:00
schedcover.py
shuffle_fuzz.py
shuffle_select_fuzz_tester.py Adding a shufflevector and select LLVM IR instructions fuzz tool 2017-10-31 11:39:31 +00:00
sort_includes.py Add polly support to sort_includes.py 2015-05-09 09:08:56 +00:00
test_debuginfo.pl Update test_debuginfo.pl script to point to new tree location. 2017-11-10 23:13:14 +00:00
update_llc_test_checks.py [utils] Fix RISC-V support in update_llc_test_checks.py 2017-11-09 20:01:25 +00:00
update_mir_test_checks.py update_mir_test_checks: Be careful about replacing entire vregs 2017-11-06 21:06:09 +00:00
update_test_checks.py [utils] remove ability to generate llc check lines from update_test_checks.py 2017-06-12 17:44:30 +00:00
UpdateCMakeLists.pl Generalize matching of add_executable to add_XXX_executable. 2012-11-22 07:48:52 +00:00
wciia.py Fix known typos 2014-01-24 17:20:08 +00:00