1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 19:42:54 +02:00
Go to file
Jakob Stoklund Olesen 3f8f107cc8 Tighten up the erase/remove API for bundled instructions.
Most code is oblivious to bundles and uses the MBB::iterator which only
visits whole bundles. MBB::erase() operates on whole bundles at a time
as before.

MBB::remove() now refuses to remove bundled instructions. It is not safe
to remove all instructions in a bundle without deleting them since there
is no way of returning pointers to all the removed instructions.

MBB::remove_instr() and MBB::erase_instr() will now update bundle flags
correctly, lifting individual instructions out of bundles while leaving
the remaining bundle intact.

The MachineInstr convenience functions are updated so

  eraseFromParent() erases a whole bundle as before
  eraseFromBundle() erases a single instruction, leaving the rest of its bundle.
  removeFromParent() refuses to operate on bundled instructions, and
  removeFromBundle() lifts a single instruction out of its bundle.

These functions will no longer accidentally split or coalesce bundles -
bundle flags are updated to preserve the existing bundling, and explicit
bundleWith* / unbundleFrom* functions should be used to change the
instruction bundling.

This API update is still a work in progress. I am going to update APIs
first so they maintain bundle flags automatically when possible. Then
I'll add stricter verification of the bundle flags.

llvm-svn: 170384
2012-12-17 23:55:38 +00:00
autoconf Add options to disable building of ARCMT, Rewriter and Static Analyzer 2012-12-13 16:07:19 +00:00
bindings [python] Add markup option to disassembler 2012-12-01 21:57:30 +00:00
cmake [CMake] Move libxml2 stuff from clang to llvm/cmake. 2012-12-14 18:30:20 +00:00
docs Actually update the grammar of this sentence to reflect the removal of CellSPU. 2012-12-15 08:56:20 +00:00
examples Sort the #include lines of the examples/... tree. 2012-12-04 10:16:57 +00:00
include Tighten up the erase/remove API for bundled instructions. 2012-12-17 23:55:38 +00:00
lib Tighten up the erase/remove API for bundled instructions. 2012-12-17 23:55:38 +00:00
projects Clean up the sample include orderings, not that it really matters... 2012-12-04 10:46:21 +00:00
runtime libprofile/CommonProfiling.c: Fix according to C89. 2012-11-02 01:32:02 +00:00
test Add a triple to this test -- it has to be an ELF platform... 2012-12-17 21:44:50 +00:00
tools Prepare LLVM to fix PR14625, exposing a hook in MCContext to manage the 2012-12-17 21:32:42 +00:00
unittests Fix some integer constant warnings by using a suffix 2012-12-17 22:11:17 +00:00
utils Fix grammar-o. 2012-12-11 00:23:07 +00:00
.arcconfig Add .arcconfig to the repository. Useful if someone wants to use phabricator's command line tool. 2012-12-01 12:07:58 +00:00
.gitignore Add extra vim swap file pattern 2012-10-09 23:48:34 +00:00
CMakeLists.txt Fix spelling 2012-12-13 15:25:07 +00:00
CODE_OWNERS.TXT Taking ownership of indvars/lsr. 2012-12-05 23:32:44 +00:00
configure Add options to disable building of ARCMT, Rewriter and Static Analyzer 2012-12-13 16:07:19 +00:00
CREDITS.TXT Update my email address. 2012-11-29 21:17:26 +00:00
LICENSE.TXT Few more small CellSPU removals. 2012-11-14 22:13:56 +00:00
llvm.spec.in Tidy up. s/Low Level Virtual Machine/LLVM/. 2012-01-25 22:00:23 +00:00
LLVMBuild.txt LLVMBuild: Introduce a common section which currently has a list of the 2011-12-12 22:45:54 +00:00
Makefile [c-index-test] When building with BUILD_CLANG_ONLY=YES, include c-index-test. 2012-11-06 19:54:46 +00:00
Makefile.common Makefile.common: Update a description, s/Source/SOURCES/ , according to MakefileGuide.html#control-variables . 2012-12-07 01:43:23 +00:00
Makefile.config.in Add options to disable building of ARCMT, Rewriter and Static Analyzer 2012-12-13 16:07:19 +00:00
Makefile.rules Use MACOSX_DEPLOYMENT_TARGET when it is set. <rdar://problem/12433905> 2012-10-12 21:48:14 +00:00
README.txt Test commit. 2012-11-29 16:19:11 +00:00

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

This directory and its subdirectories contain source code for the Low Level
Virtual Machine, 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 HTML documentation provided in docs/index.html for further
assistance with LLVM.

If you're writing a package for LLVM, see docs/Packaging.html for our
suggestions.