1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-25 20:23:11 +01:00
Go to file
Duncan P. N. Exon Smith cd73eace2f CodeGen: Assert that bundle iterators are valid
Add an assertion to the MachineInstrBundleIterator from instr_iterator
that the underlying iterator is valid.  This is possible know that we
can check ilist_node::isSentinel (since r281168), and is consistent with
the constructors from MachineInstr* and MachineInstr&.

Avoiding the new assertion in operator== and operator!= requires four
(!!!!) new overloads each.

(As an aside, I'm strongly in favour of:
- making the conversion from instr_iterator explicit;
- making the conversion from pointer explicit;
- making the conversion from reference explicit; and
- removing all the extra overloads of operator== and operator!= except
  const_instr_iterator.

I'm not signing up for that at this point, but being clear about when
something is an MachineInstr-iterator (possibly instr_end()) vs
MachineInstr-bundle-iterator (possibly end()) vs MachineInstr* (possibly
nullptr) vs MachineInstr& (known valid) would surely make code
cleaner... and it would remove a ton of boilerplate from
MachineInstrBundleIterator operators.)

llvm-svn: 281170
2016-09-11 17:12:28 +00:00
bindings Formatting with clang-format patch r280700 2016-09-06 17:03:02 +00:00
cmake [cmake] Fix a stale comment from an earlier version of r281085. NFC. 2016-09-09 19:48:22 +00:00
docs It should also be legal to pass a swifterror parameter to a call as a swifterror 2016-09-10 19:42:53 +00:00
examples Fix singlton -> singleton typo. 2016-08-26 02:00:21 +00:00
include CodeGen: Assert that bundle iterators are valid 2016-09-11 17:12:28 +00:00
lib CodeGen: Turn on sentinel tracking for MachineInstr iterators 2016-09-11 16:38:18 +00:00
projects Enable in-tree builds of parallel-libs. 2016-09-09 21:34:12 +00:00
resources
runtimes [CMake] Connecting check-all and test-depends targets correctly 2016-09-01 18:26:01 +00:00
test Fixup failing debuginfo test for change in SimplifyCFG. 2016-09-11 09:13:32 +00:00
tools [llvm-cov] Move the 'jump to first unexecuted line' link 2016-09-10 19:37:26 +00:00
unittests CodeGen: Assert that bundle iterators are valid 2016-09-11 17:12:28 +00:00
utils [cmake] Export gtest/gtest_main and its dependencies via a special build tree only cmake exports file. 2016-09-09 19:45:34 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.clang-format
.clang-tidy .clang-tidy: parameters and members should be CamelCased. 2016-09-08 23:29:37 +00:00
.gitignore gitignore: ignore VS Code editor files 2016-09-02 22:54:26 +00:00
CMakeLists.txt Try to fix a circular dependency in the modules build. 2016-09-06 20:16:19 +00:00
CODE_OWNERS.TXT CODE_OWNERS: bring my entry up to date 2016-09-05 17:42:46 +00:00
configure Remove autoconf support 2016-01-26 21:29:08 +00:00
CREDITS.TXT Shamelessly add myself to CREDITS.TXT 2016-08-04 16:28:22 +00:00
LICENSE.TXT Remove autoconf references from LICENSE.TXT 2016-08-12 20:11:03 +00:00
llvm.spec.in [Sparc] Implement i64 load/store support for 32-bit sparc. 2015-08-10 19:11:39 +00:00
LLVMBuild.txt
README.txt Revert rL277454 2016-08-02 13:26:07 +00:00
RELEASE_TESTERS.TXT Adding RELEASE_TESTERS.TXT 2016-07-21 16:46:44 +00:00

Low Level Virtual Machine (LLVM)
================================

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

LLVM is open source software. You may freely distribute it under the terms of
the license agreement found in LICENSE.txt.

Please see the documentation provided in docs/ for further
assistance with LLVM, and in particular docs/GettingStarted.rst for getting
started with LLVM and docs/README.txt for an overview of LLVM's
documentation setup.

If you are writing a package for LLVM, see docs/Packaging.rst for our
suggestions.