de2d8694e25a814696358e95141f4b1aa4d8847e |
|
20-Sep-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r275480 Bug: http://b/31320715 This merges commit 7dcf7f03e005379ef2f06db96aa93f06186b66d5 from aosp/dev. Test: Build AOSP and run RenderScript tests (host tests for slang and libbcc, RsTest, CTS) Change-Id: Iaf3738f74312d875e69f61d604ac058f381a2a1a
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f3ef5332fa3f4d5ec72c178a2b19dac363a19383 |
|
04-Mar-2016 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r256229 http://b/26987366 Change-Id: I1f29c4676a8abe633ab5707dded58d846c973d50
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6948897e478cbd66626159776a8017b3c18579b9 |
|
01-Jul-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r239765 Bug: 20140355: This rebase pulls the upstream fix for the spurious warnings mentioned in the bug. Change-Id: I7fd24253c50f4d48d900875dcf43ce3f1721a3da
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0c7f116bb6950ef819323d855415b2f2b0aad987 |
|
06-May-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master LLVM for rebase to r235153 Change-Id: I9bf53792f9fc30570e81a8d80d296c681d005ea7
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4c5e43da7792f75567b693105cc53e3f1992ad98 |
|
08-Apr-2015 |
Pirama Arumuga Nainar <pirama@google.com> |
Update aosp/master llvm for rebase to r233350 Change-Id: I07d935f8793ee8ec6b7da003f6483046594bca49
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ebe69fe11e48d322045d5949c83283927a0d790b |
|
23-Mar-2015 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r230699. Change-Id: I2b5be30509658cb8266be782de0ab24f9099f9b9
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
37ed9c199ca639565f6ce88105f9e39e898d82d0 |
|
01-Dec-2014 |
Stephen Hines <srhines@google.com> |
Update aosp/master LLVM for rebase to r222494. Change-Id: Ic787f5e0124df789bd26f3f24680f45e678eef2d
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
dce4a407a24b04eebc6a376f8e62b41aaa7b071f |
|
29-May-2014 |
Stephen Hines <srhines@google.com> |
Update LLVM for 3.5 rebase (r209712). Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
36b56886974eae4f9c5ebc96befd3e7bfe5de338 |
|
24-Apr-2014 |
Stephen Hines <srhines@google.com> |
Update to LLVM 3.5a. Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d54946ac14cca14a0b4402fd7edf5271f5e74e6a |
|
15-Oct-2013 |
Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> |
Guard the debug temp variable with NDEBUG to avoid warning/error with NDEBUG defined. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
862385112e4f81ca2e1ffb3e995c223ffd5328b7 |
|
15-Oct-2013 |
Pekka Jaaskelainen <pekka.jaaskelainen@tut.fi> |
Do not assert when trying to add a meta data operand with MachineInstr::addOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192707 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4afb5f560d2c3171eda8be6ae64998080dddec0c |
|
10-Oct-2013 |
Matthias Braun <matze@braunis.de> |
Rename parameter: defined regs are not incoming. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@192391 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1f2415efc3e9f0eb9d50367979d9c8dd6d784658 |
|
06-Jul-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove dead function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185731 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cbafae6d33031a72ba8219c28cb0e852511f79a3 |
|
28-Jun-2013 |
Manman Ren <mren@apple.com> |
Debug Info: clean up usage of Verify. No functionality change. It should suffice to check the type of a debug info metadata, instead of calling Verify. For cases where we know the type of a DI metadata, use assert. Also update testing cases to make them conform to the format of DI classes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@185135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e6dc59891fc53d65b3f6d19772d26e23e0cc1cac |
|
05-Feb-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove liveout lists from MachineRegisterInfo. All targets are now adding return value registers as implicit uses on return instructions, and there is no longer a need for the live out lists. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@174417 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c6ada8e5f38168f13830e448f2b9e2d8e3eac72b |
|
25-Jan-2013 |
Andrew Trick <atrick@apple.com> |
ScheduleDAG: colorize the DOT graph and improve formatting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173431 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fffe3634933471ee9805412ffa221080c9e9e8fd |
|
11-Jan-2013 |
Eric Christopher <echristo@gmail.com> |
For inline asm: - recognize string "{memory}" in the MI generation - mark as mayload/maystore when there's a memory clobber constraint. PR14859. Patch by Krzysztof Parzyszek git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172228 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4aebce83212d7271454c8767085645fe11054b44 |
|
10-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow hasProperty() to be called on bundle-internal instructions. When calling hasProperty() on an instruction inside a bundle, it should always behave as if IgnoreBundle was passed, and just return properties for the current instruction. Only attempt to aggregate bundle properties whan asked about the bundle header. The assertion fires on existing ARM test cases without this fix. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172082 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b11f05043465bceae4853a3bd2c01d7d664cc5e3 |
|
10-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Support headerless bundles in MachineInstr::hasProperty(). This function can still work without a BUNDLE header instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ebed123c5c2d10bb2aceb272f25644f685ebcd09 |
|
09-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't print bundle flags. The bundle flags are used by MachineBasicBlock::print(), they don't need to clutter up individual MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171986 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
25377c8c6dafd094f17833f2c37daff0b77a16fc |
|
09-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't require BUNDLE headers in MachineInstr::getBundleSize(). It is possible to build MI bundles that don't begin with a BUNDLE header. Add support for such bundles, counting all instructions inside the bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
12cd49ae1d3c8f45f3e41b6cce681b667b99ef07 |
|
09-Jan-2013 |
Sergei Larin <slarin@codeaurora.org> |
Fix a typo in MachineInstr::unbundleFromSucc() method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171983 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
682106050979f0d48fcf17338c99e91672352789 |
|
08-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pack MachineOperand bitfields better. Previously, 4 bits were unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b2c79f2f630ed3e7da31ff8adb3014fb0ab47412 |
|
08-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Pack MachineInstr fields better. This shrinks MachineInstr to 64 bytes (from 72). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
84be3d5a73313eb19f2f9e0512153cd2e6f46c54 |
|
05-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't call destructors on MachineInstr and MachineOperand. The series of patches leading up to this one makes llc -O0 run 8% faster. When deallocating a MachineFunction, there is no need to visit all MachineInstr and MachineOperand objects to deallocate them. All their memory come from a BumpPtrAllocator that is about to be purged, and they have empty destructors anyway. This only applies when deallocating the MachineFunction. DeleteMachineInstr() should still be used to recycle MI memory during the codegen passes. Remove the LeakDetector support for MachineInstr. I've never seen it used before, and now it definitely doesn't work. With this patch, leaked MachineInstrs would be much less of a problem since all of their memory will be reclaimed by ~MachineFunction(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f1d015f3429f611c423f943c75f86e6823810dc3 |
|
05-Jan-2013 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use ArrayRecycler for MachineInstr operand lists. Instead of an std::vector<MachineOperand>, use MachineOperand arrays from an ArrayRecycler living in MachineFunction. This has several advantages: - MachineInstr now has a trivial destructor, making it possible to delete them in batches when destroying MachineFunction. This will be enabled in a later patch. - Bypassing malloc() and free() can be faster, depending on the system library. - MachineInstr objects and their operands are allocated from the same BumpPtrAllocator, so they will usually be next to each other in memory, providing better locality of reference. - Reduce MachineInstr footprint. A std::vector is 24 bytes, the new operand array representation only uses 8+4+1 bytes in MachineInstr. - Better control over operand array reallocations. In the old representation, the use-def chains would be reordered whenever a std::vector reached its capacity. The new implementation never changes the use-def chain order. Note that some decisions in the code generator depend on the use-def chain orders, so this patch may cause different assembly to be produced in a few cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171598 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0b8c9a80f20772c3793201ab5b251d3520b9cea3 |
|
02-Jan-2013 |
Chandler Carruth <chandlerc@gmail.com> |
Move all of the header files which are involved in modelling the LLVM IR into their new header subdirectory: include/llvm/IR. This matches the directory structure of lib, and begins to correct a long standing point of file layout clutter in LLVM. There are still more header files to move here, but I wanted to handle them in separate commits to make tracking what files make sense at each layer easier. The only really questionable files here are the target intrinsic tablegen files. But that's a battle I'd rather not fight today. I've updated both CMake and Makefile build systems (I think, and my tests think, but I may have missed something). I've also re-sorted the includes throughout the project. I'll be committing updates to Clang, DragonEgg, and Polly momentarily. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@171366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
037435d114f77d96417ec0151443056accb0c050 |
|
22-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove a special case that doesn't seem necessary any longer. Back when this exception was added, it was skipping a lot more code, but now it just looks like a premature optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
021e3b6444e9179751002db7b20de96455e03171 |
|
22-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use getNumOperands() instead of Operands.size(). The representation of the Operands array is going to change soon so it can be allocated from a BumpPtrAllocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
56706db45bbc7be0c087451ca9f1d258324df4b2 |
|
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Require the two-argument MI::addOperand(MF, MO) for dangling instructions. Instructions that are inserted in a basic block can still be decorated with addOperand(MO). Make the two-argument addOperand() function contain the actual implementation. This function will now always have a valid MF reference that it can use for memory allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170798 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
be06aacaa9a270384599bbfa850b967e9996b9fb |
|
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MF argument to MI::copyImplicitOps(). This function is often used to decorate dangling instructions, so a context reference is required to allocate memory for the operands. Also add a corresponding MachineInstrBuilder method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170797 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9500e5d07ac9b94c8fed74150e444778a0dcb036 |
|
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use two-arg addOperand(MF, MO) internally in MachineInstr when possible. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170796 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
54c1902919b502d7b549f9e967e8d9b6921fabf9 |
|
20-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove two dead functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170766 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2e4b639790a166e55a0bf14fac54ca6ce583e459 |
|
19-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use bidirectional bundle flags to simplify important functions. The bundle_iterator::operator++ function now doesn't need to dig out the basic block and check against end(). It can use the isBundledWithSucc() flag to find the last bundled instruction safely. Similarly, MachineInstr::isBundled() no longer needs to look at iterators etc. It only has to look at flags. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
582abddeee6bd49762d562d3e641a4e290d464be |
|
19-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Verify bundle flag consistency when setting them. Now that the bundle flag aware APIs are all in place, it is possible to continuously verify the flag consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170465 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bd7b36e780f99b808f8e334e26f3dae1bc7e8175 |
|
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't allow the automatically updated MI flags to be set directly. The bundle-related MI flags need to be kept in sync with the neighboring instructions. Don't allow the bulk flag-setting setFlags() function to change them. Also don't copy MI flags when cloning an instruction. The clone's bundle flags will be set when it is explicitly inserted into a bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170459 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9f4692d2953b47e9037ccfe5709a6e75de3911d4 |
|
18-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@170384 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fad649a5b173f8cfdbbbbde8649ed66afd1129c1 |
|
07-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add higher-level API for dealing with bundled MachineInstrs. This is still a work in progress. The purpose is to make bundling and unbundling operations explicit, and to catch errors where bundles are broken or created inadvertently. The old IsInsideBundle flag is replaced by two MI flags: BundledPred which has the same meaning as IsInsideBundle, and BundledSucc which is set on instructions that are bundled with a successor. Having two flags provdes redundancy to detect when a bundle is inadvertently torn by a splice() or insert(), and it makes it possible to write bundle iterators that don't need to peek at adjacent instructions. The new flags can't be manipulated directly (once setIsInsideBundle is gone). Instead there are MI functions to make and break bundle bonds. The setIsInsideBundle function will be removed in a future commit. It should be replaced by bundleWithPred(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b47a4f7a0a780eb256cf090e01c5a002fff6684e |
|
05-Dec-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove unused MachineInstr constructors. A MachineInstr can only ever be constructed by CreateMachineInstr() and CloneMachineInstr(), and those factories don't use the removed constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d04a8d4b33ff316ca4cf961e06c9e312eff8e64f |
|
03-Dec-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Use the new script to sort the includes of every file under lib. Sooooo many of these had incorrect or strange main module includes. I have manually inspected all of these, and fixed the main module include to be the nearest plausible thing I could find. If you own or care about any of these source files, I encourage you to take some time and check that these edits were sensible. I can't have broken anything (I strictly added headers, and reordered them, never removed), but they may not be the headers you'd really like to identify as containing the API being implemented. Many forward declarations and missing includes were added to a header files to allow them to parse cleanly when included first. The main module rule does in fact have its merits. =] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@169131 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
dc6d846df56f83be4c7045ccc9092f8a8343360b |
|
31-Oct-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Check that iterator I is not the end iterator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@167086 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
87802d52e1e873592c6fe39827081b492bd318cc |
|
08-Oct-2012 |
Craig Topper <craig.topper@gmail.com> |
Remove unused MachineInstr constructors that don't take a DebugLoc argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@165382 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6c7ccaa3fd1d6e96d0bf922554b09d2b17c3b0e3 |
|
12-Sep-2012 |
Michael Liao <michael.liao@intel.com> |
Fix PR11985 - BlockAddress has no support of BA + offset form and there is no way to propagate that offset into machine operand; - Add BA + offset support and a new interface 'getTargetBlockAddress' to simplify target block address forming; - All targets are modified to use new interface and X86 backend is enhanced to support BA + offset addressing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b720be6a50f4e1b3280d2b029ee38dda14577525 |
|
12-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)" No functional change. Update r163339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163653 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
77e300e8f0b8db8eec448cae9c87d7c5bfad9757 |
|
06-Sep-2012 |
Manman Ren <mren@apple.com> |
Release build: guard dump functions with "ifndef NDEBUG" No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2f1d8154795ad82e500fda27d75ec1449e7a0648 |
|
06-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
Cleanup a few magic numbers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
77fffa6fdd389ad6d70a42b36c1c36c768c2de41 |
|
06-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] We only need one bit to represent the AsmDialect in the MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163257 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
576cd11ab8035d4240f7e6ea8d7c6c2e45154f86 |
|
05-Sep-2012 |
Chad Rosier <mcrosier@apple.com> |
[ms-inline asm] Propagate the asm dialect into the MachineInstr representation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163243 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4f1a56ce3c08763c89e9cf50e9503a87247ac4e9 |
|
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
99c416c9f7e8a9d7d1038d03cafebec730280398 |
|
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Actually use the MachineOperand field for isRegTiedToDefOperand(). The MachineOperand::TiedTo field was maintained, but not used. This patch enables it in isRegTiedToDefOperand() and isRegTiedToUseOperand() which are the actual functions use by the register allocator. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163153 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9c130672761e006c47ea23b34a7bd414f2cd8368 |
|
04-Sep-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow tied uses and defs in different orders. After much agonizing, use a full 4 bits of precious MachineOperand space to encode this. This uses existing padding, and doesn't grow MachineOperand beyond its current 32 bytes. This allows tied defs among the first 15 operands on a normal instruction, just like the current MCInstrDesc constraint encoding. Inline assembly needs to be able to tie more than the first 15 operands, and gets special treatment. Tied uses can appear beyond 15 operands, as long as they are tied to a def that's in range. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163151 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
94083149fd6891c8a72472cf1814fa6600a75979 |
|
31-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::tieOperands, remove setIsTied(). Manage tied operands entirely internally to MachineInstr. This makes it possible to change the representation of tied operands, as I will do shortly. The constraint that tied uses and defs must be in the same order was too restrictive. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@163021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e941df5e354ff7d327bab8e59af687ec90fdd149 |
|
30-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't use MCInstrDesc flags for implicit operands. When a MachineInstr is constructed, its implicit operands are added first, then the explicit operands are inserted before the implicits. MCInstrDesc has oprand flags like early clobber and operand ties that apply to the explicit operands. Don't look at those flags when the implicit operands are first added in the explicit operands's positions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162910 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f036f7a1e79910bf5b5b6f37d2e512b4f01155a0 |
|
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rename hasVolatileMemoryRef() to hasOrderedMemoryRef(). Ordered memory operations are more constrained than volatile loads and stores because they must be ordered with respect to all other memory operations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0d7585839540abb9ab661a741dc3e0c2c860bceb |
|
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't move normal loads across volatile/atomic loads. It is technically allowed to move a normal load across a volatile load, but probably not a good idea. It is not allowed to move a load across an atomic load with Ordering > Monotonic, and we model those with MOVolatile as well. I recently removed the mayStore flag from atomic load instructions, so they don't need a pseudo-opcode. This patch makes up for the difference. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
699ac049517285d978ed607b2735976c5ae97ac0 |
|
29-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Maintain a vaild isTied bit as operands are added and removed. The isTied bit is set automatically when a tied use is added and MCInstrDesc indicates a tied operand. The tie is broken when one of the tied operands is removed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162814 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4ba6916a98fffd9dedac5945ac51d40c8948069e |
|
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a MachineOperand::isTied() flag. While in SSA form, a MachineInstr can have pairs of tied defs and uses. The tied operands are used to represent read-modify-write operands that must be assigned the same physical register. Previously, tied operand pairs were computed from fixed MCInstrDesc fields, or by using black magic on inline assembly instructions. The isTied flag makes it possible to add tied operands to any instruction while getting rid of (some of) the inlineasm magic. Tied operands on normal instructions are needed to represent predicated individual instructions in SSA form. An extra <tied,imp-use> operand is required to represent the output value when the instruction predicate is false. Adding a predicate to: %vreg0<def> = ADD %vreg1, %vreg2 Will look like: %vreg0<tied,def> = ADD %vreg1, %vreg2, pred:3, %vreg7<tied,imp-use> The virtual register %vreg7 is the value given to %vreg0 when the predicate is false. It will be assigned the same physreg as %vreg0. This commit adds the isTied flag and sets it based on MCInstrDesc when building an instruction. The flag is not used for anything yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162774 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
190e342cbcb1456ebb21b53a35cfefa99435bd65 |
|
28-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't allow TargetFlags on MO_Register MachineOperands. Register operands are manipulated by a lot of target-independent code, and it is not always possible to preserve target flags. That means it is not safe to use target flags on register operands. None of the targets in the tree are using register operand target flags. External targets should be using immediate operands to annotate instructions with operand modifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162770 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d6397eba2389e8a24d37aa56e049187c1ee75f4f |
|
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Also update MRI use lists when changing a use to a def and vice versa. This was the cause of the buildbot failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161643 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ff2b99afc8cbc6cfa73181072888e0f9f07deb7e |
|
10-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move use list management into MachineRegisterInfo. Register MachineOperands are kept in linked lists accessible via MRI's reg_iterator interfaces. The linked list management was handled partly by MachineOperand methods, partly by MRI methods. Move all of the list management into MRI, delete MO::AddRegOperandToRegInfo() and MO::RemoveRegOperandFromRegInfo(). Be more explicit about handling the cases where an MRI pointer isn't available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161632 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0b40d09ff6b1facd0fe81e50ee0271e035488520 |
|
07-Aug-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new kind of MachineOperand: MO_TargetIndex. A target index operand looks a lot like a constant pool reference, but it is completely target-defined. It contains the 8-bit TargetFlags, a 32-bit index, and a 64-bit offset. It is preserved by all code generator passes. TargetIndex operands can be used to carry target-specific information in cases where immediate operands won't suffice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161441 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d862d697d2d6f7d4e8fdd0b70686a6695e04d362 |
|
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Finish fixing the MachineOperand hashing, providing a nice modern hash_value overload for MachineOperands. This addresses a FIXME sufficient for me to remove it, and cleans up the code nicely too. The important changes to the hashing logic: - TargetFlags are now included in all of the hashes. These were complete missed. - Register operands have their subregisters and whether they are a def included in the hash. - We now actually hash all of the operand types. Previously, many operand types were simply *dropped on the floor*. For example: - Floating point immediates - Large integer immediates (>64-bit) - External globals! - Register masks - Metadata operands - It removes the offset from the block-address hash; I'm a bit suspicious of this, but isIdenticalTo doesn't consider the offset for black addresses. Any patterns involving these entities could have triggered extreme slowdowns in MachineCSE or PHIElimination. Let me know if there are PRs you think might be closed now... I'm looking myself, but I may miss them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159743 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b8087451cadab83332d6ba9c65227b6e925ea38f |
|
05-Jul-2012 |
Chandler Carruth <chandlerc@gmail.com> |
The hash function for MI expressions, used by MachineCSE, is really broken. This patch fixes the superficial problems which lead to the intractably slow compile times reported in PR13225. The specific issue is that we were failing to include the *offset* of a global variable in the hash code. Oops. This would in turn cause all MIs which were only distinguishable due to operating on different offsets of a global variable to produce identical hash functions. In some of the test cases attached to the PR I saw hash table activity where there were O(1000) probes-per-lookup *on average*. A very few entries were responsible for most of these probes. There is still quite a bit more to do here. The ad-hoc layering of data in MachineOperands makes them *extremely* brittle to hash correctly. We're missing quite a few other cases, the only ones I've fixed here are the specific MO types which were allowed through the assert() in getOffset(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159741 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
33a537a5c41e60507ac9a4ea987c1a395cbb74fe |
|
05-Jul-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Allow trailing physreg RegisterSDNode operands on non-variadic instructions. Also allow trailing register mask operands on non-variadic both MachineSDNodes and MachineInstrs. The extra physreg RegisterSDNode operands are added to the MI as <imp-use> operands. This makes it possible to have non-variadic call instructions. Call and return instructions really are non-variadic, the argument registers should only be used implicitly - they are not part of the encoding. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159727 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0bcbd1df7a204e1e512f1a27066d725309de1b13 |
|
28-Jun-2012 |
Bill Wendling <isanbard@gmail.com> |
Move lib/Analysis/DebugInfo.cpp to lib/VMCore/DebugInfo.cpp and include/llvm/Analysis/DebugInfo.h to include/llvm/DebugInfo.h. The reasoning is because the DebugInfo module is simply an interface to the debug info MDNodes and has nothing to do with analysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159312 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d88d27868bf7c2c5914c1b9ccace0ee6d7ee958a |
|
05-Jun-2012 |
Andrew Trick <atrick@apple.com> |
MachineInstr::eraseFromParent fix for removing bundled instrs. Patch by Ivan Llopard. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158025 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
396618b43a85e12d290a90b181c6af5d7c0c5f11 |
|
02-Jun-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Switch all register list clients to the new MC*Iterator interface. No functional change intended. Sorry for the churn. The iterator classes are supposed to help avoid giant commits like this one in the future. The TableGen-produced register lists are getting quite large, and it may be necessary to change the table representation. This makes it possible to do so without changing all clients (again). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157854 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
275fd2523edd30e75af6398c25d47e94cc32f150 |
|
30-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove some redundant tests. An empty list is not represented as a null pointer. Let TRI do its own shortcuts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@157702 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
397fc4874efe9c17e737d4c5c50bd19dc3bf27f5 |
|
08-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add an MF argument to TRI::getPointerRegClass() and TII::getRegClass(). The getPointerRegClass() hook can return register classes that depend on the calling convention of the current function (ptr_rc_tailcall). So far, we have been able to infer the calling convention from the subtarget alone, but as we add support for multiple calling conventions per target, that no longer works. Patch by Yiannis Tsiouris! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156328 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
41afb9da2c808409fb689288bc9b77bc817e235d |
|
05-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove extra comma in debug output. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@156219 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3429c7571e87ca6070ceb1b44b1f367ce23c99f9 |
|
20-Apr-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print <def,read-undef> to avoid confusion. The <undef> flag on a def operand only applies to partial register redefinitions. Only print the flag when relevant, and print it as <def,read-undef> to make it clearer what it means. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@155239 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
95d594cac3737ae1594a391276942a443cac426b |
|
31-Mar-2012 |
Rafael Espindola <rafael.espindola@gmail.com> |
Teach CodeGen's version of computeMaskedBits to understand the range metadata. This is the CodeGen equivalent of r153747. I tested that there is not noticeable performance difference with any combination of -O0/-O2 /-g when compiling gcc as a single compilation unit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153817 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
85f9cef27e6b2605e67e94afc949f5b5f5b90668 |
|
17-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
MachineInstr: Inline the fast path (non-bundle instruction) of hasProperty. This is particularly helpful as both arguments tend to be constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152991 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
861ea230a7841fe4ccc8a1cd5460354e59aeed3c |
|
16-Mar-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Limit the number of memory operands in MachineInstr to 2^16 and store the number in padding. Saves one machine word on MachineInstr (88->80 bytes on x86_64, 48->44 on i386). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fac259814923d091942b230e7bd002a8d1130bc3 |
|
08-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store instruction implicit uses and defs. Reduces static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b53a1d67b13fa2f036e18180523ea336100e5240 |
|
07-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Try to clarify this comment some. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152221 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fc22625eb04d39b0de77090702cf50a9bcda3ddb |
|
07-Mar-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Remove another outbreak of customized (and completely broken) hashing. This one is particularly annoying because the hashing algorithm is highly specialized, with a strange "equivalence" definition that subsets the fields involved. Still, this looks at the exact same set of data as the old code, but without bitwise or-ing over parts of it and other mixing badness. No functionality changed here. I've left a substantial fixme about the fact that there is a cleaner and more principled way to do this, but it requires making the equality definition actual stable for particular types... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152218 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e4fd907e72a599eddfa7a81eac4366b5b82523e3 |
|
04-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Use uint16_t to store register overlaps to reduce static data. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@152001 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
741981adf3a2bc0c6652c9c4ec846250950f3e68 |
|
01-Mar-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Move getBundleStart() into MachineInstrBundle.h. This allows the function to be inlined, and makes it suitable for use in getInstructionIndex(). Also provide a const version. C++ is great for touch typing practice. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151782 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
00195d828b934455da597dbba72f1aade4e53393 |
|
17-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Reverse iterator - should be incrementing rather than decrementing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150778 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cc2037be2cf0159e9f7a917a4db434258fe6eb6b |
|
16-Feb-2012 |
Lang Hames <lhames@gmail.com> |
Make LiveIntervals::handleMove() bundle aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1cf8b0f2a5435d8444b6cc7d4a27eef424398273 |
|
15-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle regmasks in findRegisterDefOperandIdx(). Only accept register masks when looking for an 'overlapping' def. When Overlap is not set, the function searches for a proper definition of Reg. This means MI->modifiesRegister() considers register masks, but MI->definesRegister() doesn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150529 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c667ba69ac342563c0886e20509e68705d78a0a5 |
|
10-Feb-2012 |
Benjamin Kramer <benny.kra@googlemail.com> |
Put instruction names into an indexed string table on the side, removing a pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150245 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
99a7a13f4aa5bf8f272c95f7b09ba997d2b30a35 |
|
08-Feb-2012 |
Andrew Trick <atrick@apple.com> |
Added MachineInstr::isBundled() to check if an instruction is part of a bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
77180e0b402fff318cffd89a2251e46b3dce4064 |
|
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle register mask operands in setPhysRegsDeadExcept(). Calls that use register mask operands don't have implicit defs for returned values. The register mask operand handles the call clobber, but it always behaves like a set of dead defs. Add live implicit defs for any implicitly defined physregs that are actually used. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149715 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a37818dbb119bda75273f16b8484732e742cdbb7 |
|
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
ArrayRef'ize MI::setPhysRegsDeadExcept(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149709 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
59cb77fb11ec547f60ef0ff4a8ccf3bd8007ae46 |
|
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Handle all live physreg defs in the same place. SelectionDAG has 4 different ways of passing physreg defs to users. Collect all of the uses at the same time, and pass all of them to MI->setPhysRegsDeadExcept() to mark the remaining defs dead. The setPhysRegsDeadExcept() function will soon add the required implicit-defs to instructions with register mask operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149708 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
478a8a02bc0f2e739ed8f4240152e99837e480b9 |
|
03-Feb-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Require non-NULL register masks. It doesn't seem worthwhile to give meaning to a NULL register mask pointer. It complicates all the code using register mask operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1a96c914315b0286d84c507d696484e2c95875a4 |
|
26-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Clear kill flags before propagating a copy. The live range of the source register may be extended when a redundant copy is eliminated. Make sure any kill flags between the two copies are cleared. This fixes PR11765. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149069 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7739cad69d2590f556afc9fc3048f967b5a3f4f6 |
|
16-Jan-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a new kind of MachineOperand: MO_RegisterMask. Register masks will be used as a compact representation of large clobber lists. Currently, an x86 call instruction has some 40 operands representing call-clobbered registers. That's more than 1kB of useless operands per call site. A register mask operand references a bit mask of call-preserved registers, everything else is clobbered. The bit mask will typically come from TargetRegisterInfo::getCallPreservedMask(). By abandoning ImplicitDefs for call-clobbered registers, it also becomes possible to share call instruction descriptions between calling conventions, and we can get rid of the WINCALL* instructions. This patch introduces the new operand kind. Future patches will add RegMask support to target-independent passes before finally the fixed clobber lists can be removed from call instruction descriptions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@148250 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
732f05c41f177a0bc4d47e93a5d02120f146cb4c |
|
10-Jan-2012 |
Chandler Carruth <chandlerc@gmail.com> |
Add 'llvm_unreachable' to passify GCC's understanding of the constraints of several newly un-defaulted switches. This also helps optimizers (including LLVM's) recognize that every case is covered, and we should assume as much. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147861 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2bd335470f8939782f3df7f6180282d3825d4f09 |
|
10-Jan-2012 |
David Blaikie <dblaikie@gmail.com> |
Remove unnecessary default cases in switches that cover all enum values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147855 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ddfd1377d2e4154d44dc3ad217735adc15af2e3f |
|
14-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Add MachineInstrBundle.h and MachineInstrBundle.cpp. This includes a function to finalize MI bundles (i.e. add BUNDLE instruction and computing register def and use lists of the BUNDLE instruction) and a pass to unpack bundles. - Teach more of MachineBasic and MachineInstr methods to be bundle aware. - Switch Thumb2 IT block to MI bundles and delete the hazard recognizer hack to prevent IT blocks from being broken apart. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
43d5d4ca1c93529c43e78cc5aa03c4ee10a6b0d8 |
|
08-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Make MachineInstr instruction property queries more flexible. This change all clients to decide whether to look inside bundled instructions and whether the query should return true if any / all bundled instructions have the queried property. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146168 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5a96b3dad2f634c9081c8b2b6c2575441dc5a2bd |
|
07-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
Add bundle aware API for querying instruction properties and switch the code generator to it. For non-bundle instructions, these behave exactly the same as the MC layer API. For properties like mayLoad / mayStore, look into the bundle and if any of the bundled instructions has the property it would return true. For properties like isPredicable, only return true if *all* of the bundled instructions have the property. For properties like canFoldAsLoad, isCompare, conservatively return false for bundles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146026 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
04003451986868d201a2893c2ff2eaa0fb869aee |
|
07-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add missing check. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@146004 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2068215e8515203ab4839ee494cdc53dfd0cdf02 |
|
07-Dec-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineOperand IsInternalRead flag. This flag is used when bundling machine instructions. It indicates whether the operand reads a value defined inside or outside its bundle. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145997 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7c2a4a30e0e16762c75adacebd05ec9fcbccf16b |
|
06-Dec-2011 |
Evan Cheng <evan.cheng@apple.com> |
First chunk of MachineInstr bundle support. 1. Added opcode BUNDLE 2. Taught MachineInstr class to deal with bundled MIs 3. Changed MachineBasicBlock iterator to skip over bundled MIs; added an iterator to walk all the MIs 4. Taught MachineBasicBlock methods about bundled MIs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@145975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d752e0f7e64585839cb3a458ef52456eaebbea3c |
|
08-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Added invariant field to the DAG.getLoad method and changed all calls. When this field is true it means that the load is from constant (runt-time or compile-time) and so can be hoisted from loops or moved around other memory accesses git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@144100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
71fccadbed49b555d9582198ee58301494109410 |
|
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Reverted r143600 - selector reference change git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143646 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d1ffc739c1f88352c79a63ff17b828b3a529777e |
|
03-Nov-2011 |
Pete Cooper <peter_cooper@apple.com> |
Treat objc selector reference globals as invariant so that MachineLICM can hoist them out of loops. Fixes <rdar://problem/6027699> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@143600 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3821b1885e13dcdda6aa2853f1317d3288256685 |
|
13-Oct-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Add missing braces to pacify GCC's -Wparentheses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f5916976e9057177100badee7b7388bd7ba76ac3 |
|
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::getRegClassConstraint(). Most instructions have some requirements for their register operands. Usually, this is expressed as register class constraints in the MCInstrDesc, but for inline assembly the constraints are encoded in the flag words. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141835 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9dfaacb696d1ad850f9f5f49a94fdb81cf8ae018 |
|
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Extract a method for finding the inline asm flag operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141834 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
459b74b9644c4741d93fe73adc2b06ca6bdb366d |
|
13-Oct-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Encode register class constreaints in inline asm instructions. The inline asm operand constraint is initially encoded in the virtual register for the operand, but that register class may change during coalescing, and the original constraint is lost. Encode the original register class as part of the flag word for each inline asm operand. This makes it possible to recover the actual constraint required by inline asm, just like we can for normal instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141833 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cc84cda91997bf6fc93512a56c3a12eecaaa2d88 |
|
29-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove NumImplicitOps which is now unused. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140767 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3627a462938c92c00053a24828b35da5195d0d68 |
|
29-Sep-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Rewrite MachineInstr::addOperand() to avoid NumImplicitOps. The function needs to scan the implicit operands anyway, so no performance is won by caching the number of implicit operands added to an instruction. This also fixes a bug when adding operands after an implicit operand has been added manually. The NumImplicitOps count wasn't kept up to date. MachineInstr::addOperand() will now consistently place all explicit operands before all the implicit operands, regardless of the order they are added. It is possible to change an MI opcode and add additional explicit operands. They will be inserted before any existing implicit operands. The only exception is inline asm instructions where operands are never reordered. This is because of a hack that marks explicit clobber regs on inline asm as <implicit-def> to please the fast register allocator. This hack can go away when InstrEmitter and FastIsel can add exact <dead> flags to physreg defs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140744 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f8e1e3e729473b8b2b7ee6134b6417976af84d05 |
|
30-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
Thumb2 parsing and encoding for IT blocks. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138773 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ee61d67c2f1105e23b2ea5110389f3b7b713b504 |
|
24-Aug-2011 |
Jim Grosbach <grosbach@apple.com> |
Tidy up. Trailing whitespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138437 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
201f2463a72f88121a3a31e7386029e99d2d75da |
|
19-Aug-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't treat a partial <def,undef> operand as a read. Normally, a partial register def is treated as reading the super-register unless it also defines the full register like this: %vreg110:sub_32bit<def> = COPY %vreg77:sub_32bit, %vreg110<imp-def> This patch also uses the <undef> flag on partial defs to recognize non-reading operands: %vreg110:sub_32bit<def,undef> = COPY %vreg77:sub_32bit This fixes a subtle bug in RegisterCoalescer where LIS->shrinkToUses would treat a coalesced copy as still reading the register, extending the live range artificially. My test case only works when I disable DCE so a dead copy is left for RegisterCoalescer, so I am not including it. <rdar://problem/9967101> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@138018 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4d3586dd230a3b16018da138404dbb87faf2008d |
|
04-Aug-2011 |
Devang Patel <dpatel@apple.com> |
Print DBG_VALUE variable's location info as a comment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@136916 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9194c6716be13e2b8d2cf8e45273bf6c79f8b32c |
|
07-Jul-2011 |
Devang Patel <dpatel@apple.com> |
If known DebugLocs do not match then two DBG_VALUE machine instructions are not identical. For example, DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:32:10 ] DBG_VALUE 3.310000e+02, 0, !"ds"; dbg:sse.stepfft.c:138:18 @[ sse.stepfft.c:31:10 ] These two MIs represent identical value, 3.31..., for one variable, ds, but they are not identical because the represent two separate instances of inlined variable "ds". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134620 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d519de082766bb71e13f6a516b305ff841c6b48c |
|
02-Jul-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Include a source location when complaining about bad inline assembly. Add a MI->emitError() method that the backend can use to report errors related to inline assembly. Call it from X86FloatingPoint.cpp when the constraints are wrong. This enables proper clang diagnostics from the backend: $ clang -c pr30848.c pr30848.c:5:12: error: Inline asm output regs must be last on the x87 stack __asm__ ("" : "=u" (d)); /* { dg-error "output regs" } */ ^ 1 error generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c20fb63ebdbc8caec4566eaa7bc5be7f0a14cca1 |
|
02-Jul-2011 |
Cameron Zwarich <zwarich@apple.com> |
Take a stab at fixing the llvm-x86_64-linux-checks failure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134287 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e837dead3c8dc3445ef6a0e2322179c57e264a13 |
|
28-Jun-2011 |
Evan Cheng <evan.cheng@apple.com> |
- Rename TargetInstrDesc, TargetOperandInfo to MCInstrDesc and MCOperandInfo and sink them into MC layer. - Added MCInstrInfo, which captures the tablegen generated static data. Chang TargetInstrInfo so it's based off MCInstrInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134021 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f792fa90f1125553008659c743cba85b9b5d2e5e |
|
27-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Distinguish early clobber output operands from clobbered registers. Both become <earlyclobber> defs on the INLINEASM MachineInstr, but we now use two different asm operand kinds. The new Kind_Clobber is treated identically to the old Kind_RegDefEarlyClobber for now, but x87 floating point stack inline assembly does care about the difference. This will pop a register off the stack: asm("fstp %st" : : "t"(x) : "st"); While this will pop the input and push an output: asm("fst %st" : "=&t"(r) : "t"(x)); We need to know if ST0 was a clobber or an output operand, and we can't depend on <dead> flags for that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133902 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7a2ecd3f99ae4dede7e8c1984c2a08984be69363 |
|
27-Jun-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Decode and pretty print inline asm operand descriptors. The INLINEASM MachineInstrs have an immediate operand describing each original inline asm operand. Decode the bits in MachineInstr::print() so it is easier to read: INLINEASM <es:rorq $1,$0>, $0:[regdef], %vreg0<def>, %vreg1<def>, $1:[imm], 1, $2:[reguse] [tiedto:$0], %vreg2, %vreg3, $3:[regdef-ec], %EFLAGS<earlyclobber,imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133901 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8594d429e02c688d428036f8563f09572da3fbff |
|
24-Jun-2011 |
Devang Patel <dpatel@apple.com> |
Handle debug info for i128 constants. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@133821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cbc988be22bc9411d95215c8b7251b5f85710674 |
|
12-May-2011 |
Evan Cheng <evan.cheng@apple.com> |
Re-commit 131172 with fix. MachineInstr identity checks should check dead markers. In some cases a register def is dead on one path, but not on another. This is passing Clang self-hosting. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cf724f078623e786fc92335fdb0ec70b46f2e86d |
|
08-May-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Remove an assertion to fix PR9872. It can happen that a live debug variable is the last use of a sub-register, and the register allocator will pick a larger register class for the virtual register. If the allocated register doesn't support the sub-register index, just use %noreg for the debug variables instead of asserting. In PR9872, a debug variable ends up in the sub_8bit_hi part of a GR32_ABCD register. The register is split and one part is inflated to GR32 and assigned %ESI because there are no more normal uses of sub_8bit_hi. Since %ESI doesn't have that sub-register, substPhysReg asserted. Now it will simply insert a %noreg instead, and the debug variable will be marked unavailable in that range. We don't currently have a way of saying: !"value" is in bits 8-15 of %ESI, I don't know if DWARF even supports that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@131073 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d65ba721cccb0d0998750908bf2533e08b106f38 |
|
30-Apr-2011 |
Bill Wendling <isanbard@gmail.com> |
Print out the 'nontemporal' info on a store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@130562 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b793bc1ccabef36b3223bae69f5e94a8e98d22eb |
|
05-Apr-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Ensure all defs referring to a virtual register are marked dead by addRegisterDead(). There can be multiple defs for a single virtual register when they are defining sub-registers. The missing <dead> flag was stopping the inline spiller from eliminating dead code after rematerialization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@128888 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6dd97471c43805b3febf598d50498a09a02e93f4 |
|
05-Mar-2011 |
Anton Korobeynikov <asl@math.spbu.ru> |
Add FrameSetup MI flags git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@127098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c9df025e33ac435adb3b3318d237c36ca7cec659 |
|
10-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Simplify a bunch of isVirtualRegister() and isPhysicalRegister() logic. These functions not longer assert when passed 0, but simply return false instead. No functional change intended. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4314268128be6d54c9a7f0709680e5a5b40f3ab3 |
|
09-Jan-2011 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Replace TargetRegisterInfo::printReg with a PrintReg class that also works without a TRI instance. Print virtual registers numbered from 0 instead of the arbitrary FirstVirtualRegister. The first virtual register is printed as %vreg0. TRI::NoRegister is printed as %noreg. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c36b7069b42bece963b7e6adf020353ce990ef76 |
|
08-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
Do not model all INLINEASM instructions as having unmodelled side effects. Instead encode llvm IR level property "HasSideEffects" in an operand (shared with IsAlignStack). Added MachineInstrs::hasUnmodeledSideEffects() to check the operand when the instruction is an INLINEASM. This allows memory instructions to be moved around INLINEASM instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123044 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
30a343aeedf777f9b8b6be9823da750afbf765b1 |
|
07-Jan-2011 |
Evan Cheng <evan.cheng@apple.com> |
DBG_VALUE does not have any side effects; it also makes no sense to mark it cheap as a copy. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@123031 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c8f46c45a0bdefdb91593cabc87547cc45f9d89d |
|
22-Oct-2010 |
Evan Cheng <evan.cheng@apple.com> |
Unbreak build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@117155 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f96e4bd2a3b11928af75fb7472288930d16fec0b |
|
20-Oct-2010 |
Dan Gohman <gohman@apple.com> |
Make CodeGen TBAA-aware. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116890 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2594746045258958673ebe42db2a27a4d05b0b73 |
|
19-Oct-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Shrink MachineOperand from 40 to 32 bytes on 64-bit hosts. Pull an unsigned out of the Contents union such that it has the same size as two pointers and no padding. Arrange members such that the Contents union and all pointers can be 8-byte aligned without padding. This speeds up code generation by 0.8% on a 64-bit host. 32-bit hosts should be unaffected. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@116857 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fc448ff89b4fb7721de9da0b96fd00c13160c4c7 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
convert a couple more places to use the new getStore() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114463 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1daa6f479dd5fb4123f1ffbb10a3825da7d2c6b8 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some accessors git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114409 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e8639036b1fb3a5b5e9589fe4e9f2ee1b77c36bd |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
it's more elegant to put the "getConstantPool" and "getFixedStack" on the MachinePointerInfo class. While this isn't the problem I'm setting out to solve, it is the right way to eliminate PseudoSourceValue, so lets go with it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114406 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
40a858f6e71ed8d68779d00c63dad15baded3562 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
add some helpful accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114400 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
da39c3964423744b4d79aebef8bece3e9141d5fc |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
start pushing MachinePointerInfo out through the MachineMemOperand interface to the MachineFunction construction methods. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114390 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e8e2e80f40495fdd5ad475beb54fcf0989b6b7c5 |
|
21-Sep-2010 |
Chris Lattner <sabre@nondot.org> |
refactor the Value*/offset pair from MachineMemOperand out to a new MachinePointerInfo struct, no functionality change. This also adds an assert to MachineMemOperand::MachineMemOperand that verifies that the Value* is either null or is an IR pointer type. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@114389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ee56c42168f6c4271593f6018c4409b6a5910302 |
|
02-Aug-2010 |
Oscar Fuentes <ofv@wanadoo.es> |
Prefix `next' iterator operation with `llvm::'. Fixes potential ambiguity problems on VS 2010. Patch by nobled! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@110029 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a0c5bf19bff7d06faa3e039a0638806c9e5a8ff6 |
|
28-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print out the regclass of any virtual registers used by a machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109608 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b1e11455d1cf4df081a9593660d194c1a53b4334 |
|
05-Jul-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic subreg indices on REG_SEQUENCE and INSERT_SUBREG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f1e309eb4862459a76445942ba4dafc433b6f317 |
|
02-Jul-2010 |
Dale Johannesen <dalej@apple.com> |
Propagate the AlignStack bit in InlineAsm's to the PrologEpilog code, and use it to determine whether the asm forces stack alignment or not. gcc consistently does not do this for GCC-style asms; Apple gcc inconsistently sometimes does it for asm blocks. There is no convenient place to put a bit in either the SDNode or the MachineInstr form, so I've added an extra operand to each; unlovely, but it does allow for expansion for more bits, should we need it. PR 5125. Some existing testcases are affected. The operand lists of the SDNode and MachineInstr forms are indexed with awesome mnemonics, like "2"; I may fix this someday, but not now. I'm not making it any worse. If anyone is inspired I think you can find all the right places from this patch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107506 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
da0e89f4c4057114fe7236fd001e9ef6d836ee82 |
|
29-Jun-2010 |
Devang Patel <dpatel@apple.com> |
Print InlinedAt location. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@107208 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
db4971259ce94cea26e555e9ade82672a3581f5c |
|
19-Jun-2010 |
Dan Gohman <gohman@apple.com> |
Teach regular and fast isel to set dead flags on unused implicit defs on calls and similar instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@106353 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9edf7deb37f0f97664f279040fa15d89f32e23d9 |
|
03-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Slightly change the meaning of the reMaterialize target hook when the original instruction defines subregisters. Any existing subreg indices on the original instruction are preserved or composed with the new subreg index. Also substitute multiple operands mentioning the original register by using the new MachineInstr::substituteRegister() function. This is necessary because there will soon be <imp-def> operands added to non read-modify-write partial definitions. This instruction: %reg1234:foo = FLAP %reg1234<imp-def> will reMaterialize(%reg3333, bar) like this: %reg3333:bar-foo = FLAP %reg333:bar<imp-def> Finally, replace the TargetRegisterInfo pointer argument with a reference to indicate that it cannot be NULL. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a5135f60dd95275dcbc1123f866889151ced933d |
|
02-Jun-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Properly compose subregister indices when coalescing. The comment about ordering of subreg indices is no longer true. This exposed a bug in the new substVirtReg method that is also fixed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@105294 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2da53370241fdd1b5c291483311b34e609f06c73 |
|
28-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add a TargetRegisterInfo::composeSubRegIndices hook with a default implementation that is correct for most targets. Tablegen will override where needed. Add MachineOperand::subst{Virt,Phys}Reg methods that correctly handle existing subreg indices when sustituting registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1fc8e759a767077726f9be35b93767e68bdf101f |
|
25-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Print symbolic SubRegIndex names on machine operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1015ba7018c87f48cc7bb45a564eb4a27241e76a |
|
21-May-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::findRegisterDefOperandIdx so it can also look for defs that are aliases of the specified register. - Rename modifiesRegister to definesRegister since it's looking a def of the specific register or one of its super-registers. It's not looking for def of a sub-register or alias that could change the specified register. - Added modifiesRegister to look for defs of aliases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104377 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
18b2c9d3bf5a6633535eaad8388f0353b14cbfb8 |
|
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsWritesVirtualRegister() to determine if an instruction reads or writes a register. This takes partial redefines and undef uses into account. Don't actually use it yet. That caused miscompiles. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104372 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
19f5f71bba08e690611fa213647ac6bae814756b |
|
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Revert "Use MachineInstr::readsWritesVirtualRegister to determine if a register is read." This reverts r104322. I think it was causing miscompilations. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104323 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
00c53caa339f954cb3590a05e8653b864b4355cf |
|
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Use MachineInstr::readsWritesVirtualRegister to determine if a register is read. This correctly handles partial redefines and undef uses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104322 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
63e6a488cb6c29983415221719d05fbf99e00193 |
|
21-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
If the first definition of a virtual register is a partial redef, add an <imp-def> operand for the full register. This ensures that the full physical register is marked live after register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104320 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7ebc4d63db05ac214d36bc01b4d60adadaf923e5 |
|
19-May-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add MachineInstr::readsVirtualRegister() in preparation for proper handling of partial redefines. We are going to treat a partial redefine of a virtual register as a read-modify-write: %reg1024:6 = OP Unless the register is fully clobbered: %reg1024:6 = OP, %reg1024<imp-def> MachineInstr::readsVirtualRegister() knows the difference. The first case is a read, the second isn't. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@104149 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e6cd757e6800b9b94a6459ec148c0624c4f2e3c1 |
|
13-May-2010 |
Dan Gohman <gohman@apple.com> |
Teach MachineLICM and MachineSink how to clear kill flags conservatively when they move instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@103737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
59b3655564bb6717b296ca9e71f13bf7db45b590 |
|
28-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Pretty print DBG_VALUE machine instructions. Before: DBG_VALUE %RSI, 0, !-1; dbg:SimpleRegisterCoalescing.cpp:2707 Now: DBG_VALUE %RSI, 0, !"this"; dbg:SimpleRegisterCoalescing.cpp:2707 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1793ab9e70c48146a5f1592b84b2b93e38c67fa4 |
|
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Use getNumImplicitDefs() and getNumImplicitUses(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100850 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0855cadb00c598d4e78c8f1842a9c1b9bf19c667 |
|
09-Apr-2010 |
Bob Wilson <bob.wilson@apple.com> |
Fix up some comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100849 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a57fabe815ccf016eead526eb3ef475f116ab155 |
|
08-Apr-2010 |
Evan Cheng <evan.cheng@apple.com> |
Coalescer should not delete copy instructions whose defs are partially dead. e.g. %RDI<def,dead> = MOV64rr %RAX<kill>, %EDI<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
24ad3ed71fe93059d1b46ffdbfe63259762bf547 |
|
07-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
fix a latent bug my inline asm stuff exposed: MachineOperand::isIdenticalTo wasn't handling metadata operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100636 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a4f2bb08de92ccec21cbb3d0a9518384b0173660 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
stop using DebugLoc::getUnknownLoc() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100215 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
de4845c163a5847c82d7ce10ed0c320098bce6e0 |
|
02-Apr-2010 |
Chris Lattner <sabre@nondot.org> |
Switch the code generator (except the JIT) onto the new DebugLoc representation. This eliminates the 'DILocation' MDNodes for file/line/col tuples from -O0 -g codegen. This remove the old DebugLoc class, making it a typedef for DebugLoc, I'll rename NewDebugLoc next. I didn't update the JIT to use the new apis, so it will continue to work, but be as slow as before. Someone should eventually do this or, better yet, rip out the JIT debug info stuff and build the JIT on top of MC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100209 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
72aaa3c79869870bd16402ed1f37b80a5e71c800 |
|
13-Mar-2010 |
Chris Lattner <sabre@nondot.org> |
add support for MCSymbols as operands to MachineInstrs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@98433 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3c91b05d2b1751b9e4e21fd958d358ec463dcd3c |
|
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating checks in Descriptor constructors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97975 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0ef3fa6aabc80995c8a0bd829c85c89ef2d4c32d |
|
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Revert r97947. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97963 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d8cc5d5256e79a74188dfef5a12d43127330dad3 |
|
08-Mar-2010 |
Devang Patel <dpatel@apple.com> |
Avoid using DIDescriptor.isNull(). This is a first step towards eliminating unncessary constructor checks in light weight DIDescriptor wrappers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
67eaa08f2b71aa8aec8cdf4c7d970db4cad58ada |
|
04-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Move MachineInstrExpressionTrait::getHashValue() out of line so it can skip over only virtual register defs. This matches what isEqual() is doing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
34cdf6edf55d22832dee34fe6a39f1e10691ab51 |
|
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Fix funky indentation and add comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97670 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
506049f29f4f202a8e45feb916cc0264440a7f6d |
|
03-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
- Change MachineInstr::isIdenticalTo to take a new option that determines whether it should skip checking defs or at least virtual register defs. This subsumes part of the TargetInstrInfo::isIdentical functionality. - Eliminate TargetInstrInfo::isIdentical and replace it with produceSameValue. In the default case, produceSameValue just checks whether two machine instructions are identical (except for virtual register defs). But targets may override it to check for unusual cases (e.g. ARM pic loads from constant pools). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97628 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ac1abde05b7e6956c01deb6557539bee8fea30f4 |
|
02-Mar-2010 |
Evan Cheng <evan.cheng@apple.com> |
Swap parameters of isSafeToMove and isSafeToReMat for consistency. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@97578 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ba2b297ca53cd685ba397177e9d2d8c239da971e |
|
15-Feb-2010 |
David Greene <greened@obbligato.org> |
Add non-temporal flags to MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96226 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f451cb870efcf9e0302d25ed05f4cac6bb494e42 |
|
10-Feb-2010 |
Dan Gohman <gohman@apple.com> |
Fix "the the" and similar typos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9653f9ec970147a12216d787078eab2f8b9c122a |
|
10-Feb-2010 |
Dale Johannesen <dalej@apple.com> |
Add isDebug argument to ChangeToRegister; this prevents the field from being used uninitialized later in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95735 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
518bb53485df640d7b7e3f6b0544099020c42aa7 |
|
09-Feb-2010 |
Chris Lattner <sabre@nondot.org> |
move target-independent opcodes out of TargetInstrInfo into TargetOpcodes.h. #include the new TargetOpcodes.h into MachineInstr. Add new inline accessors (like isPHI()) to MachineInstr, and start using them throughout the codebase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@95687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b1bb4afbc7d801f9875be135c428b6f05511db5d |
|
19-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Identify predicate and optional-def operands when printing machine instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93925 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6b61f5816e22ac7f7e009aaf3e11ccce7cfeb085 |
|
16-Jan-2010 |
Devang Patel <dpatel@apple.com> |
Replace DebugLocTuple with DILocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5f72a5ebc84a1935878b5b2d3166a505c520cdfc |
|
13-Jan-2010 |
Dale Johannesen <dalej@apple.com> |
Further progration of metadata operands. The dumper doesn't really do what I want yet, but at least it doesn't crash now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8efadf94b568c08de3ff8ce35fd904a935387406 |
|
06-Jan-2010 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Add <imp-def> and <imp-kill> operands when replacing virtual sub-register defs and kills. An instruction like this: %reg1097:1<def> = VMOVSR %R3<kill>, 14, %reg0 Must be replaced with this when substituting physical registers: %S0<def> = VMOVSR %R3<kill>, 14, %reg0, %D0<imp-def> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92812 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3b325334102144ec39910563eabebde434504564 |
|
05-Jan-2010 |
David Greene <greened@obbligato.org> |
Change errs() to dbgs(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92545 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5e9cd434234a36089daeee915f1dc02b96947fba |
|
28-Dec-2009 |
Chris Lattner <sabre@nondot.org> |
snip one more #include from Metadata.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92214 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
164558e59c2a321bf670e31a7bdde0d38d79bb67 |
|
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92159 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ad2cf9dd63d15a8bcd7d34a379a1e983fd8c66f7 |
|
25-Dec-2009 |
Bill Wendling <isanbard@gmail.com> |
Remove dead store from copy-pasto. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@92158 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
06801722a43c697eff0acee905de6b50257ce19b |
|
16-Dec-2009 |
Jim Grosbach <grosbach@apple.com> |
Add @earlyclobber TableGen constraint git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@91554 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d8f079c25e8bcaf4d10bfa9c3f6a38cd5ac84329 |
|
08-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Follow up to 90488. Turn a check into an assertion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90815 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4b808b014b0cd25261f93e1885ffdbd0247d8634 |
|
05-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Don't print the debug directory; it's often long and uninteresting. Omit the column number if it is not known. Handle the case of a missing filename better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90630 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9aed9396a672f50541dc77a4662bb882a0fb1080 |
|
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Watch out for PHI instruction with no source operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90488 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
229694f0ee630ceabe96a8bd48952f6740f928b2 |
|
03-Dec-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fill out codegen SSA updater. It's not yet tested. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90395 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
261a7d983d38edd2f1ee6ff2cd0c12a2c2a8b044 |
|
01-Dec-2009 |
Dan Gohman <gohman@apple.com> |
Devang pointed out that this code should use DIScope instead of DICompileUnit. This code now prints debug filenames successfully. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90181 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
75ae593a2750f9f7995980c3a03c0d972985e394 |
|
23-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print the debug info line and column in MachineInstr::print even when there's no filename. This situation is apparently fairly common right now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@89701 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
834651c94535bfb054449e6c01d5c77ab7a117d3 |
|
16-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Initialize the new AsmPrinterFlags field to 0, fixing uses of uninitialized memory. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@88985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
80f6c5898113806130975fd56d24929b06bf54f8 |
|
09-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Print "..." instead of all the uninteresting register clobbers on call instructions. This makes CodeGen dumps significantly less noisy. Example before: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %R2<imp-def,dead>, %R3<imp-def,dead>, %R12<imp-def,dead>, %LR<imp-def,dead>, %D0<imp-def,dead>, %D1<imp-def,dead>, %D2<imp-def,dead>, %D3<imp-def,dead>, %D4<imp-def,dead>, %D5<imp-def,dead>, %D6<imp-def,dead>, %D7<imp-def,dead>, %D16<imp-def,dead>, %D17<imp-def,dead>, %D18<imp-def,dead>, %D19<imp-def,dead>, %D20<imp-def,dead>, %D21<imp-def,dead>, %D22<imp-def,dead>, %D23<imp-def,dead>, %D24<imp-def,dead>, %D25<imp-def,dead>, %D26<imp-def,dead>, %D27<imp-def,dead>, %D28<imp-def,dead>, %D29<imp-def,dead>, %D30<imp-def,dead>, %D31<imp-def,dead>, %CPSR<imp-def,dead>, %FPSCR<imp-def,dead> Same example after: BL <ga:@bar>, %R0<imp-def>, %R1<imp-def,dead>, %LR<imp-def,dead>, %CPSR<imp-def,dead>, ... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86583 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8d4e3b5b48b245ed65259270a53fcaf0bf91d9f7 |
|
06-Nov-2009 |
Dan Gohman <gohman@apple.com> |
Use WriteAsOperand to print GlobalAddress MachineOperands. This prints them with the leading '@'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@86261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0ba90f3e34b826b039bdfece1415ef032c4ad3f5 |
|
31-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Make -print-machineinstrs more readable. - Be consistent when referring to MachineBasicBlocks: BB#0. - Be consistent when referring to virtual registers: %reg1024. - Be consistent when referring to unknown physical registers: %physreg10. - Be consistent when referring to known physical registers: %RAX - Be consistent when referring to register 0: %reg0 - Be consistent when printing alignments: align=16 - Print jump table contents. - Don't print host addresses, in general. - and various other cleanups. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85682 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8c2b52552c90f39e4b2fed43e309e599e742b6ac |
|
30-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Initial target-independent CodeGen support for BlockAddresses. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@85556 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5affca0763836e15ca15e78ed3a0fd56ef6b2e92 |
|
21-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Need a comma after imp-use. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84749 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0789707c49135bba69e0e308d0fbc41bb7cbe78a |
|
15-Oct-2009 |
Evan Cheng <evan.cheng@apple.com> |
Print earlyclobber for implicit-defs as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1619dc3b9ee2573c481591764c2d26d5ff16b483 |
|
14-Oct-2009 |
Devang Patel <dpatel@apple.com> |
s/DebugLoc.CompileUnit/DebugLoc.Scope/g s/DebugLoc.InlinedLoc/DebugLoc.InlinedAtLoc/g git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@84054 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a70dca156fa76d452f54829b5c5f962ddfd94ef2 |
|
10-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Factor out LiveIntervalAnalysis' code to determine whether an instruction is trivially rematerializable and integrate it into TargetInstrInfo::isTriviallyReMaterializable. This way, all places that need to know whether an instruction is rematerializable will get the same answer. This enables the useful parts of the aggressive-remat option by default -- using AliasAnalysis to determine whether a memory location is invariant, and removes the questionable parts -- rematting operations with virtual register inputs that may not be live everywhere. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
599a87aca0194edb46f0bee141c3de8281bf22b9 |
|
09-Oct-2009 |
Dan Gohman <gohman@apple.com> |
isTriviallyReMaterializable checks the TargetInstrDesc::isRematerializable flag, so it isn't necessary to do this check in its callers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83671 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e33f44cfc547359bc28526e4c5e1852b600b4448 |
|
07-Oct-2009 |
Dan Gohman <gohman@apple.com> |
Replace TargetInstrInfo::isInvariantLoad and its target-specific implementations with a new MachineInstr::isInvariantLoad, which uses MachineMemOperands and is target-independent. This brings MachineLICM and other functionality to targets which previously lacked an isInvariantLoad implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cf0fe8d813727383d630055bb9d1cde21b00b7e7 |
|
05-Oct-2009 |
Chris Lattner <sabre@nondot.org> |
strength reduce a ton of type equality tests to check the typeid (Through the new predicates I added) instead of going through a context and doing a pointer comparison. Besides being cheaper, this allows a smart compiler to turn the if sequence into a switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83297 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5ccdd10b1a0ee1ce35b6e5a18eb0fcfd6f5131d3 |
|
29-Sep-2009 |
Devang Patel <dpatel@apple.com> |
Remove std::string uses from DebugInfo interface. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@83083 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4b2ebc19288491cb068f268c311d9fef0ec6a29f |
|
26-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand::getAlignment out of line, to avoid needing MathExtras.h in MachineMemOperand.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82822 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c76909abfec876c6b751d693ebd3df07df686aa0 |
|
25-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Improve MachineMemOperand handling. - Allocate MachineMemOperands and MachineMemOperand lists in MachineFunctions. This eliminates MachineInstr's std::list member and allows the data to be created by isel and live for the remainder of codegen, avoiding a lot of copying and unnecessary translation. This also shrinks MemSDNode. - Delete MemOperandSDNode. Introduce MachineSDNode which has dedicated fields for MachineMemOperands. - Change MemSDNode to have a MachineMemOperand member instead of its own fields with the same information. This introduces some redundancy, but it's more consistent with what MachineInstr will eventually want. - Ignore alignment when searching for redundant loads for CSE, but remember the greatest alignment. Target-specific code which previously used MemOperandSDNodes with generic SDNodes now use MemIntrinsicSDNodes, with opcodes in a designated range so that the SelectionDAG framework knows that MachineMemOperand information is available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82794 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cd26ec5f3c089b3b24f80ff200e94e681eb9e1ee |
|
23-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Give MachineMemOperand an operator<<, factoring out code from two different places for printing MachineMemOperands. Drop the virtual from Value::dump and instead give Value a protected virtual hook that can be overridden by subclasses to implement custom printing. This lets printing be more consistent, and simplifies printing of PseudoSourceValue values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
28f02fdd76f4efc05d14649e0eec90ce8e71e17e |
|
21-Sep-2009 |
Dan Gohman <gohman@apple.com> |
Change MachineMemOperand's alignment value to be the alignment of the base pointer, without the offset. This matches MemSDNode's new alignment behavior, and holds more interesting information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82473 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f9ca50e3dce88b2f9e2f2f0cac2d3ed78afda841 |
|
17-Sep-2009 |
Jim Grosbach <grosbach@apple.com> |
grammar git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@82150 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d9ea85ab01fb0f2929ed50223d3758dceea8bcbd |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove some uses of llvm/Support/Streams.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79842 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
705e07f578e2b3af47ddab610feb4e7f2d3063a5 |
|
23-Aug-2009 |
Chris Lattner <sabre@nondot.org> |
remove various std::ostream version of printing methods from MachineInstr and MachineOperand. This required eliminating a bunch of stuff that was using DOUT, I hope that bill doesn't mind me stealing his fun. ;-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@79813 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1d0be15f89cb5056e20e2d24faa8d6afb1573bca |
|
13-Aug-2009 |
Owen Anderson <resistor@mac.com> |
Push LLVMContexts through the IntegerType APIs. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
efb8e3e113cbf359d6a838c3b37fedc8305d19bb |
|
04-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Don't tamper with <undef> operands in MachineInstr::addRegisterKilled. For an undef operand, MO.getReg() is meaningless and we should not use it. Undef operands should be skipped entirely. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@78095 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
980daea857719b3eeb7dc88fe013049d361d955b |
|
03-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix Bug 4657: register scavenger asserts with subreg lowering When LowerSubregsInstructionPass::LowerInsert eliminates an INSERT_SUBREG instriction because it is an identity copy, make sure that the same registers are alive before and after the elimination. When the super-register is marked <undef> this requires inserting an IMPLICIT_DEF instruction to make sure the super register is live. Fix a related bug where a kill flag on the inserted sub-register was not transferred properly. Finally, clear the undef flag in MachineInstr::addRegisterKilled. Undef implies dead and kill implies live, so they cant both be valid. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77989 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ece48185168ab130b1777feb86d9e3fe80eb87d2 |
|
02-Aug-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Never add a kill flag to a constrained physical register in a two-addr instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77906 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7cc2c406d0c82bcf329048ced643ec77fcae60e6 |
|
28-Jul-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix a typo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@77369 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
45d34fe35846eed7019bdc2f7814025302849e0c |
|
19-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix http://llvm.org/bugs/show_bug.cgi?id=4583 Inline asm instructions may have additional <imp-def,kill> register operands. These operands are not marked with a flag like the normal asm operands, so we must not assert that there is a flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
57e599a46b7b1321f9af02d1cecb4fa6b34f8a52 |
|
16-Jul-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Teach MachineInstr::isRegTiedToDefOperand() to correctly parse inline asm operands. The inline asm operands must be parsed from the first flag, you cannot assume that an immediate operand preceeding a register use operand is the flag. PowerPC "m" operands are represented as (flag, imm, reg) triples. isRegTiedToDefOperand() would incorrectly interpret the imm as the flag. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76101 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c23197a26f34f559ea9797de51e187087c039c42 |
|
14-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
llvm_unreachable->llvm_unreachable(0), LLVM_UNREACHABLE->llvm_unreachable. This adds location info for all llvm_unreachable calls (which is a macro now) in !NDEBUG builds. In NDEBUG builds location info and the message is off (it only prints "UREACHABLE executed"). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75640 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c25e7581b9b8088910da31702d4ca21c4734c6d7 |
|
11-Jul-2009 |
Torok Edwin <edwintorok@gmail.com> |
assert(0) -> LLVM_UNREACHABLE. Make llvm_unreachable take an optional string, thus moving the cerr<< out of line. LLVM_UNREACHABLE is now a simple wrapper that makes the message go away for NDEBUG builds. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75379 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4784f1fc73abf6005b7b7262d395af71b57b1255 |
|
30-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Add a bit IsUndef to MachineOperand. This indicates the def / use register operand is defined by an implicit_def. That means it can def / use any register and passes (e.g. register scavenger) can feel free to ignore them. The register allocator, when it allocates a register to a virtual register defined by an implicit_def, can allocate any physical register without worrying about overlapping live ranges. It should mark all of operands of the said virtual register so later passes will do the right thing. This is not the best solution. But it should be a lot less fragile to having the scavenger try to track what is defined by implicit_def. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74518 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
31530617dd206c3ac549e98508d8f98e91bf8275 |
|
24-Jun-2009 |
Chris Lattner <sabre@nondot.org> |
Rearrange some stuff in MachineOperand and add a new TargetFlags field. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74087 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ef5d070bbe55d7165fc84778ca7757c3cfeea491 |
|
24-Jun-2009 |
Evan Cheng <evan.cheng@apple.com> |
Fix support for inline asm input / output operand tying when operand spans across multiple registers (e.g. two i64 operands in 32-bit mode). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c965ee223c6077250525048106726e12b59072ac |
|
05-Jun-2009 |
Dan Gohman <gohman@apple.com> |
Remove some unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@72948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a26eae64ddf607549f9e47046d46ea5b9ec648b4 |
|
01-May-2009 |
Argyrios Kyrtzidis <akyrtzi@gmail.com> |
Make DebugLoc independent of DwarfWriter. -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ce9be2cf5dc84865f6b819bd3f9be16944426268 |
|
29-Apr-2009 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@70408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9407cd4ede3e2c090b958778d0fdbdac8b2dbec4 |
|
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Fix MachineInstr::getNumExplicitOperands to count variadic operands correctly. Patch by Jakob Stoklund Olesen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69190 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3bc1a3735f216f4a122fe4a05d39f63888ab205a |
|
15-Apr-2009 |
Dan Gohman <gohman@apple.com> |
Give RemoveRegOperandFromRegInfo a comment and move the code out of line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c30aa7b3de0ce8c37e9630e8e7a73cb83c808c62 |
|
10-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
ignore register zero in isRegTiedToUseOperand, following the example of isRegTiedToDefOperand. Thanks to Bob for pointing this out! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68734 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d9df5017040489303acb57bdd8697ef0f8bafc08 |
|
09-Apr-2009 |
Bob Wilson <bob.wilson@apple.com> |
Fix pr3954. The register scavenger asserts for inline assembly with register destinations that are tied to source operands. The TargetInstrDescr::findTiedToSrcOperand method silently fails for inline assembly. The existing MachineInstr::isRegReDefinedByTwoAddr was very close to doing what is needed, so this revision makes a few changes to that method and also renames it to isRegTiedToUseOperand (for consistency with the very similar isRegTiedToDefOperand and because it handles both two-address instructions and inline assembly with tied registers). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68714 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0c8382ce9a96e36325b17d242fd1af16564d8a85 |
|
09-Apr-2009 |
Chris Lattner <sabre@nondot.org> |
reg0 references are not real registers. This fixes a crash on the attached testcase. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@68712 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fb11288109329cb736d9f49769581a0d0c23fe19 |
|
23-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Model inline asm constraint which ties an input to an output register as machine operand TIED_TO constraint. This eliminated the need to pre-allocate registers for these. This also allows register allocator can eliminate the unneeded copies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a24752ff43dc1ad8c18c5d9e78549c45f62b980e |
|
19-Mar-2009 |
Evan Cheng <evan.cheng@apple.com> |
Added MachineInstr::isRegTiedToDefOperand to check for two-addressness. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@67335 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b5ef27375731ece13a8ae0102b3f3233351036af |
|
19-Feb-2009 |
Bill Wendling <isanbard@gmail.com> |
Print out debug info when printing the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@65067 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
06efc02854a96a9f92edc3bf46b0451f488cf2e6 |
|
28-Jan-2009 |
Dale Johannesen <dalej@apple.com> |
Add a DebugLoc field and some simple accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@63152 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
237dee125997dcaf16e391878465162cc680c0fa |
|
23-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Use isTerminator() instead of isBranch()||isReturn() in several places. isTerminator() returns true for a superset of cases, and includes things like FP_REG_KILL, which are nither return or branch but aren't safe to move/remat/etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61373 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2ccc83966914593d98af5671ce10a3bf2dcf7513 |
|
18-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Print subreg information in MachineInstr::dump. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@61213 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bcf28c08b3f0a3c4aa1be8f1485f6452d9a2b690 |
|
09-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Minor code simplification. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2ce7f2068f13566f5a70ee779e3bb83a6cb8d942 |
|
05-Dec-2008 |
Dan Gohman <gohman@apple.com> |
Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@60586 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cbad42cfd1cc93a41ff26ea2e8895bfbc09f54f2 |
|
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Add more const qualifiers. This fixes build breakage from r59540. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59542 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b3b930a011554fc7566dd4311af3862b01e5fd8f |
|
18-Nov-2008 |
Dan Gohman <gohman@apple.com> |
Make some methods const. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59540 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5ca6bd14a00ba5310ce1a632d3a0cc8f8af31433 |
|
10-Oct-2008 |
Mon P Wang <wangmp@apple.com> |
Added missing print functions that take a raw_ostream git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57339 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d735b8019b0f297d7c14b55adcd887af24d8e602 |
|
03-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Switch the MachineOperand accessors back to the short names like isReg, etc., from isRegister, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@57006 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d790a5ceee7138d8a5352432ccf862a42e3f5819 |
|
02-Oct-2008 |
Dan Gohman <gohman@apple.com> |
Fix a think-o in isSafeToMove. This fixes it from thinking that volatile memory references are safe to move. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56948 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
86b49f8e2de796cb46c7c8b6a4c4900533fd53f4 |
|
24-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Next round of earlyclobber handling. Approach the RA problem by expanding the live interval of an earlyclobber def back one slot. Remove overlap-earlyclobber throughout. Remove earlyclobber bits and their handling from live internals. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56539 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3e4fb70c6af53a2d00e057a7e4a8f93eb2ff2112 |
|
24-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Add a method to MachineInstr for testing whether it makes any volatile memory references. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56528 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
91aac1015e6714d959801dd8d60f55a72827dc4d |
|
17-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Add a bit to mark operands of asm's that conflict with an earlyclobber operand elsewhere. Propagate this bit and the earlyclobber bit through SDISel. Change linear-scan RA not to allocate regs in a way that conflicts with an earlyclobber. See also comments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56290 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e009180f2bbcf5edbe3b583936c37c4b3be2d082 |
|
14-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
adjust last patch per review feedback git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
014278e6a11fa0767853b831e5bf51b95bf541c5 |
|
13-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Remove isImm(), isReg(), and friends, in favor of isImmediate(), isRegister(), and friends, to avoid confusion about having two different names with the same meaning. I'm not attached to the longer names, and would be ok with changing to the shorter names if others prefer it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56189 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
913d3dfac43f29921467f33aa743f28ee1bfc5d1 |
|
12-Sep-2008 |
Dale Johannesen <dalej@apple.com> |
Pass "earlyclobber" bit through to machine representation; coalescer and RA need to know about it. No functional change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@56161 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3f62940561760fe5dcc8675853be57ee4ac8069a |
|
03-Sep-2008 |
Dan Gohman <gohman@apple.com> |
Fix addRegisterDead and addRegisterKilled to be more thorough when searching for redundant subregister dead/kill bits. Previously it was common to see instructions marked like this: "RET %EAX<imp-use,kill>, %AX<imp-use,kill>" With this change, addRegisterKilled continues scanning after finding the %EAX operand, so it proceeds to discover the redundant %AX kill and eliminates it, producing this: "RET %EAX<imp-use,kill>" This currently has no effect on the generated code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55698 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3689ff450ae2d72aadf48c70f499e4368684d1e3 |
|
30-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fold isRematerializable checks into isSafeToReMat. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55563 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8763c1c54413c9cd0b56e2860edb5856151a69fc |
|
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Move the check whether it's worth remating to caller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55434 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
df3b99381f1c211071cc1daf0cc297666877bbcb |
|
27-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor isSafeToReMat out of 2addr pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55430 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
edfb72c6288118ab9c900a560ded89dfaa107296 |
|
24-Aug-2008 |
Chris Lattner <sabre@nondot.org> |
simplify PseudoSourceValue printing a bit. Unnest all of PseudoSourceValue.cpp from the llvm namespace. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55293 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
40ab164d3ae6fddb279ae49ab2f9756b466c640a |
|
24-Aug-2008 |
Evan Cheng <evan.cheng@apple.com> |
Print PseudoSourceValue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55291 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b8d2f550b84523e8a73198f98e5d450ec3b4fee7 |
|
20-Aug-2008 |
Dan Gohman <gohman@apple.com> |
Change the FoldingSetNodeID usage for objects which carry alignment and volatility information, such as loads and stores, to reduce the number of integer values added to the FoldingSetNodeID. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@55058 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
79e6ed9d4733ef6bfaf6e6ae71a013c8b226b7c9 |
|
15-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Move MachineInstr::getOpcode inline. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54807 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
22ae99908258dd5631fde7128a94c418ed08eae5 |
|
14-Aug-2008 |
Owen Anderson <resistor@mac.com> |
Speed up addRegisterDead by adding more fast checks before performing the expensive subregister query, and by increasing the size of the subregister hashtable so that there are fewer collisions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54781 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fed90b6d097d50881afb45e4d79f430db66dd741 |
|
28-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Fold the useful features of alist and alist_node into ilist, and a new ilist_node class, and remove them. Unlike alist_node, ilist_node doesn't attempt to manage storage itself, so it avoids the associated problems, including being opaque in gdb. Adjust the Recycler class so that it doesn't depend on alist_node. Also, change it to use explicit Size and Align parameters, allowing it to work when the largest-sized node doesn't have the greatest alignment requirement. Change MachineInstr's MachineMemOperand list from a pool-backed alist to a std::list for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@54146 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6116a73da420d9b414a34ce2599dc7f6476e23fc |
|
21-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Now that the MachineInstr leaks are fixed, enable leak checking in the MachineInstr clone code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53868 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1ed9922794cda9dbe295e74674b909287e544632 |
|
19-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Fix a memory leak in LiveIntervalAnalysis. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53779 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2c3f7ae3843bdc9dcfe85393e178211976c1f9bd |
|
18-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Re-introduce LeakDetector support for MachineInstrs and MachineBasicBlocks. Fix a leak that this turned up in LowerSubregs.cpp. And, comment a leak in LiveIntervalAnalysis.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53746 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c5e1f98fdf44993c2bfe4c1ef633b2358cd718c1 |
|
16-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Add an assert to check for empty flags for MachineMemOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
dc2fbddd9d204e904b8e61d1da1428579e7c55af |
|
11-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Trim unnecessary #includes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ef0732d25a9882c947984ae3f2afbef5463ba00f |
|
10-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Change the horrible N^2 isRegReDefinedByTwoAddr. Now callers must supply the operand index of def machineoperand and at most one full scan of non-implicit operands is needed. - Change local register allocator to use the new isRegReDefinedByTwoAddr instead of reinventing the wheel. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53394 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4e526b9a5b36d9bac170c03df0a5d6fb76740ae2 |
|
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
It's no longer necessary to test if a MachineBasicBlock's parent is non-null. It now always is. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f1bf29e648a25a440d3dcf5a445b30c4129c9bca |
|
09-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Verify that MachineMemOperand alignment is a non-zero power of 2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53262 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8e5f2c6f65841542e2a7092553fe42a00048e4c7 |
|
08-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Pool-allocation for MachineInstrs, MachineBasicBlocks, and MachineMemOperands. The pools are owned by MachineFunctions. This drastically reduces the number of calls to malloc/free made during the "Emit" phase of scheduling, as well as later phases in CodeGen. Combined with other changes, this speeds up the "instruction selection" phase of CodeGen by 10% in some cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53212 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ce42e404a26454f4332c2c350c75ad27bbbb16f7 |
|
07-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Move MachineMemOperand's constructor out of line, to avoid a #include dependency on Support/MathExtras.h in the header file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53200 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9f1c8317a4676945b4961ddb9827ef2412551620 |
|
03-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
- Remove calls to copyKillDeadInfo which is an N^2 function. Instead, propagate kill / dead markers as new instructions are constructed in foldMemoryOperand, convertToThressAddress, etc. - Also remove LiveVariables::instructionChanged, etc. Replace all calls with cheaper calls which update VarInfo kill list. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53097 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2ebc11ac6d19ec806da97bd4f2d49a27932d09fb |
|
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Reapply r52988, "Simplify addRegisterKilled and addRegisterDead." The 254.gap failure was not due to this mod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53068 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8b69135f05cc2b8fff0f50bc826666b1da0661c4 |
|
03-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Revert r52988. It broke 254.gap on x86-64. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53050 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1096734011a1ed403cc3a35e5f05f0f56873725d |
|
02-Jul-2008 |
Evan Cheng <evan.cheng@apple.com> |
Simplify addRegisterKilled and addRegisterDead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52988 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4406604047423576e36657c7ede266ca42e79642 |
|
01-Jul-2008 |
Dan Gohman <gohman@apple.com> |
Split ISD::LABEL into ISD::DBG_LABEL and ISD::EH_LABEL, eliminating the need for a flavor operand, and add a new SDNode subclass, LabelSDNode, for use with them to eliminate the need for a label id operand. Change instruction selection to let these label nodes through unmodified instead of creating copies of them. Teach the MachineInstr emitter how to emit a MachineInstr directly from an ISD label node. This avoids the need for allocating SDNodes for the label id and flavor value, as well as SDNodes for each of the post-isel label, label id, and label flavor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52943 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
01b2e236b571e7c22ee8493b7ea19eda9830d75c |
|
28-Jun-2008 |
Evan Cheng <evan.cheng@apple.com> |
Looks like this condition is inverted. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52841 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b827c26e1e49944e44604402d2414b259dba6900 |
|
27-Jun-2008 |
Owen Anderson <resistor@mac.com> |
Don't perform expensive queries checking for super and sub registers when we know that there aren't any. This speed up LiveVariables on instcombine at -O0 -g from 0.3855s to 0.3503s. Look for more improvements in this area soon! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@52804 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8370d38adee63b3a4d87bfe81be4aacc55fe7cda |
|
29-May-2008 |
Bill Wendling <isanbard@gmail.com> |
Add a flag to indicate that an instruction is as cheap (or cheaper) than a move instruction to execute. This can be used for transformations (like two-address conversion) to remat an instruction instead of generating a "move" instruction. The idea is to decrease the live ranges and register pressure and all that jazz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@51660 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
703bfe69092e8da79fbef2fc5ca07b805ad9f753 |
|
06-May-2008 |
Dan Gohman <gohman@apple.com> |
Fix a broken doxygen comment, and reword it for clarity. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@50687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9b6d7b9fb36b5cf87d291881dfcea399796f7826 |
|
16-Apr-2008 |
Evan Cheng <evan.cheng@apple.com> |
Code clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49783 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
36b5c1338a03453ba1c110b120269ca972fb65a3 |
|
07-Apr-2008 |
Dan Gohman <gohman@apple.com> |
Rename MemOperand to MachineMemOperand. This was suggested by review feedback from Chris quite a while ago. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@49348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
71a2cb25ebc818383dd0f80475bc166f834e8d99 |
|
20-Mar-2008 |
Chris Lattner <sabre@nondot.org> |
detabify llvm, patch by Mike Stump! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48577 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b27087f5aa574f875598f4a309b7dd687c64a455 |
|
13-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor some code out of MachineSink into a MachineInstr query. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6130f66eaae89f8878590796977678afa8448926 |
|
05-Mar-2008 |
Evan Cheng <evan.cheng@apple.com> |
Refactor code. Remove duplicated functions that basically do the same thing as findRegisterUseOperandIdx, findRegisterDefOperandIndx. Fix some naming inconsistencies. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47927 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
76782f49d88bbf2853ba663a1469d8324ddcbfcc |
|
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Did I say 'e = getNumOperands()'? I meant --e, of course. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47875 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
405abffd5eb1ad1841491e51943b598c935f309b |
|
04-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Miscellaneous clean-ups based on Evan's feedback: - Cleaned up how the prologue-epilogue inserter loops over the instructions. - Instead of restarting the processing of an instruction if we remove an implicit kill, just update the end iterator and make sure that the iterator isn't incremented. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47870 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4a23d72ec21d1bdfda69fd16c9fc10cec39f1fed |
|
03-Mar-2008 |
Bill Wendling <isanbard@gmail.com> |
Go through the machine instruction's operands to make sure that we're not marking both a super- and sub-register as "killed". This removes implicit uses that are marked as "killed". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47862 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e6d088acc90e422451e098555d383d4d65b6ce6b |
|
26-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Rename PrintableName to Name. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47629 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
181eb737b28628adc4376b973610a02039385026 |
|
24-Feb-2008 |
Bill Wendling <isanbard@gmail.com> |
Some platforms use the same name for 32-bit and 64-bit registers (like %r3 on PPC) in their ASM files. However, it's hard for humans to read during debugging. Adding a new field to the register data that lets you specify a different name to be printed than the one that goes into the ASM file -- %x3 instead of %r3, for instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e8b7ccf0c9a06831266d690d0b10ead71e0a4ac5 |
|
14-Feb-2008 |
Nate Begeman <natebegeman@mac.com> |
Support a new type of MachineOperand, MO_FPImmediate, used for holding FP Immediates, crazily enough git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47117 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6f0d024a534af18d9e60b3ea757376cd8a3a980e |
|
10-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Rename MRegisterInfo to TargetRegisterInfo. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46930 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bbd8322daaefa70ba1a282956df5f977e783524b |
|
08-Feb-2008 |
Evan Cheng <evan.cheng@apple.com> |
Also print alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46895 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2bfe6ff605f07e8f50874b1326227efc8bb8ed3d |
|
07-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Don't abort if a MemOperand is missing a SourceValue; just print it as <unknown>. And make some minor adjustments to the MemOperand dump format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46853 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
69de1932b350d7cdfc0ed1f4198d6f78c7822a02 |
|
06-Feb-2008 |
Dan Gohman <gohman@apple.com> |
Re-apply the memory operand changes, with a fix for the static initializer problem, a minor tweak to the way the DAGISelEmitter finds load/store nodes, and a renaming of the new PseudoSourceValue objects. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46827 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
334dc1f58d617dcff969a2e107febaae42bbc883 |
|
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Revert 46556 and 46585. Dan please fix the PseudoSourceValue problem and re-commit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bb81d97feb396a8bb21d074db1c57e9f66525f40 |
|
31-Jan-2008 |
Evan Cheng <evan.cheng@apple.com> |
Add an extra operand to LABEL nodes which distinguishes between debug, EH, or misc labels. This fixes the EH breakage. However I am not convinced this is *the* solution. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46609 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c6c391daddbafa722d9ca87d18f204e9a6e617a3 |
|
31-Jan-2008 |
Dan Gohman <gohman@apple.com> |
Create a new class, MemOperand, for describing memory references in the backend. Introduce a new SDNode type, MemOperandSDNode, for holding a MemOperand in the SelectionDAG IR, and add a MemOperand list to MachineInstr, and code to manage them. Remove the offset field from SrcValueSDNode; uses of SrcValueSDNode that were using it are all all using MemOperandSDNode now. Also, begin updating some getLoad and getStore calls to use the PseudoSourceValue objects. Most of this was written by Florian Brander, some reorganization and updating to TOT by me. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46585 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b487e7215c4f70f3d98f8fbc0a11eb119afc1f37 |
|
24-Jan-2008 |
Owen Anderson <resistor@mac.com> |
Move some functionality for adding flags to MachineInstr's into methods on MachineInstr rather than LiveVariables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@46295 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f14cf85e334ff03bbdd23e473f14ffa4fb025e94 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
remove #includage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45697 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
749c6f6b5ed301c84aac562e414486549d7b98eb |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename TargetInstrDescriptor -> TargetInstrDesc. Make MachineInstr::getDesc return a reference instead of a pointer, since it can never be null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45695 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8f707e15fbd09ca948b86419bcb0c92470827ac9 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
rename hasVariableOperands() -> isVariadic(). Add some comments. Evan, please review the comments I added to getNumDefs to make sure that they are accurate, thx. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45687 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
349c4952009525b27383e2120a6b3c998f39bd09 |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Move a bunch more accessors from TargetInstrInfo to TargetInstrDescriptor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45680 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8ca5c67c6e95fdcf5ddb2f06586873c843dd0cde |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Add predicates methods to TargetOperandInfo, and switch all clients over to using them, instead of diddling Flags directly. Change the various flags from const variables to enums. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45677 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
69244300b8a0112efb44b6273ecea4ca6264b8cf |
|
07-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstr::getInstrDescriptor -> getDesc(), which reflects that it is cheap and efficient to get. Move a variety of predicates from TargetInstrInfo into TargetInstrDescriptor, which makes it much easier to query a predicate when you don't have TII around. Now you can use MI->getDesc()->isBranch() instead of going through TII, and this is much more efficient anyway. Not all of the predicates have been moved over yet. Update old code that used MI->getInstrDescriptor()->Flags to use the new predicates in many places. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45674 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
80fe5311b5e9e5c4642ff46ba2377173c17797f6 |
|
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Make MachineRegisterInfo::getVRegDef more efficient by aiming the keep the def of the vreg at the start of the list, so the list doesn't need to be traversed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e138b3dd1ff02d826233482831318708a166ed93 |
|
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
switch the register iterator to act more like hte LLVM value iterator: dereferencing it now returns the machineinstr of the use. To get the operand, use I.getOperand(). Add a new MachineRegisterInfo::replaceRegWith, which is basically like Value::replaceAllUsesWith. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45482 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
62ed6b9ade63bf01717ce5274fa11e93e873d245 |
|
01-Jan-2008 |
Chris Lattner <sabre@nondot.org> |
Implement automatically updated def/use lists for all MachineInstr register operands. The lists are currently kept in MachineRegisterInfo, but it does not yet provide an iterator interface to them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45477 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f20c1a497fe3922ac718429d65a5fe396890575e |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
properly encapsulate the parent field of MBB and MI with get/set accessors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45469 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
84bc5427d6883f73cfeae3da640acd011d35c006 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Rename SSARegMap -> MachineRegisterInfo in keeping with the idea that "machine" classes are used to represent the current state of the code being compiled. Given this expanded name, we can start moving other stuff into it. For now, move the UsedPhysRegs and LiveIn/LoveOuts vectors from MachineFunction into it. Update all the clients to match. This also reduces some needless #includes, such as MachineModuleInfo from MachineFunction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45467 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8aa797aa51cd4ea1ec6f46f4891a6897944b75b2 |
|
31-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Add new shorter predicates for testing machine operands for various types: e.g. MO.isMBB() instead of MO.isMachineBasicBlock(). I don't plan on switching everything over, so new clients should just start using the shorter names. Remove old long accessors, switching everything over to use the short accessor: getMachineBasicBlock() -> getMBB(), getConstantPoolIndex() -> getIndex(), setMachineBasicBlock -> setMBB(), etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45464 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f73823000e2d5d6e1cf65bdf5a107297e18d35fb |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
More cleanups for MachineOperand: - Eliminate the static "print" method for operands, moving it into MachineOperand::print. - Change various set* methods for register flags to take a bool for the value to set it to. Remove unset* methods. - Group methods more logically by operand flavor in MachineOperand.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e3087890ac7f2fcf4697f8e09091e9a384311b9c |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand: - Add getParent() accessors. - Move SubReg out of the AuxInfo union, to make way for future changes. - Remove the getImmedValue/setImmedValue methods. - in some MachineOperand::Create* methods, stop initializing fields that are dead. MachineInstr: - Delete one copy of the MachineInstr printing code, now there is only one dump format and one copy of the code. - Make MachineOperand use the parent field to get info about preg register names if no target info is otherwise available. - Move def/use/kill/dead flag printing to the machineoperand printer, so they are always printed for an operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45460 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e26dcfe6affca105469db974d990c961e5ed3437 |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simpilfy some register printing code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45458 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7da5313d3f20ff4bf491a828726c8b11d88bfa7c |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
eliminate a copy of the machineoperand printing stuff. Keep the copy that knows how to print offsets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45457 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fde5f801be6bb75fad4e7a39b5bc62c04857ac0c |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Simplify and clean up some machine operand/instr printing/dumping stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45456 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0974d9a5247a1f70ab739191ce5d768488a0f8aa |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
two register machineoperands are not identical unless their subregs match. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45455 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9e3304900ff69c4920fea7369c9c36916c4a6a6a |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
MachineOperand::getImmedValue -> MachineOperand::getImm git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45454 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e12d6abfdfc5141b2001f0c369a0e1525315b9c0 |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
make machine operands fatter: give each one an up-pointer to the machineinstr that owns it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45449 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8019f41c0b7fda031d494e3900eada7d4e494772 |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Start using the simplified methods for adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45432 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a4161ee99478e7f8f9e33481e1c0dc79f0b4bd7d |
|
30-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
simplify some code by factoring operand construction better. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4ee451de366474b9c228b4e5fa573795a715216d |
|
29-Dec-2007 |
Chris Lattner <sabre@nondot.org> |
Remove attribution from file headers, per discussion on llvmdev. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@45418 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c498b0281fa81bc213ad1a1228664d480936c0e6 |
|
14-Nov-2007 |
Evan Cheng <evan.cheng@apple.com> |
Clean up sub-register implementation by moving subReg information back to MachineOperand auxInfo. Previous clunky implementation uses an external map to track sub-register uses. That works because register allocator uses a new virtual register for each spilled use. With interval splitting (coming soon), we may have multiple uses of the same register some of which are of using different sub-registers from others. It's too fragile to constantly update the information. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
fa9457276a2174aaf302240dd32d89900ad021ae |
|
13-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
Optionally create a MachineInstr without default implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42945 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
32dfbeada7292167bb488f36a71a5a6a519ddaff |
|
12-Oct-2007 |
Evan Cheng <evan.cheng@apple.com> |
EXTRACT_SUBREG coalescing support. The coalescer now treats EXTRACT_SUBREG like (almost) a register copy. However, it always coalesced to the register of the RHS (the super-register). All uses of the result of a EXTRACT_SUBREG are sub- register uses which adds subtle complications to load folding, spiller rewrite, etc. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@42899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
92dfe2001e96f6e2b6d327e8816f38033f88b295 |
|
14-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Remove isReg, isImm, and isMBB, and change all their users to use isRegister, isImmediate, and isMachineBasicBlock, which are equivalent, and more popular. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41958 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
cb648f90a26eb05ae8d508d500ca12881df50824 |
|
14-Sep-2007 |
Dan Gohman <gohman@apple.com> |
Remove spurious consts. This fixes warnings with compilers that are strict about such things. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@41956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6f95014158208ad6cd6f6d1996c821fca61d7915 |
|
26-Jul-2007 |
Christopher Lamb <christopher.lamb@gmail.com> |
Remove subreg index from MachineInstr's and also keep vregs as unsigned when adding operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@40514 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bf9d02eaf6378c3d35d6202ad803b0374132fc61 |
|
15-Jun-2007 |
Evan Cheng <evan.cheng@apple.com> |
MachineInstr::isPredicable() is no longer needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37599 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f277ee4be7edabb759a7f78138b693d72d0c263f |
|
29-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Add missing const qualifiers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c3a289c4b5a60a204363ba4ae9f017ba87b714f9 |
|
16-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename M_PREDICATED to M_PREDICABLE; Moved isPredicable() to MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37121 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
19e3f31f6acd9f5ce3cdd8372d4cb598ed921f95 |
|
15-May-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added getNumExplicitOperands and findFirstPredOperand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@37064 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7bf1c272ab27297a7bbab329de3f17ddb26e02a3 |
|
01-May-2007 |
Nate Begeman <natebegeman@mac.com> |
llvm bug #1350, parts 1, 2, and 3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36618 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
faa510726f4b40aa4495e60e4d341c6467e3fb01 |
|
26-Apr-2007 |
Evan Cheng <evan.cheng@apple.com> |
Rename findRegisterUseOperand to findRegisterUseOperandIdx to avoid confusion. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@36483 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
32eb1f1ca4220d2f24916e587ad7e8574d7d82a1 |
|
27-Mar-2007 |
Evan Cheng <evan.cheng@apple.com> |
Change findRegisterUseOperand() to return operand index instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
76d7e76c15c258ec4a71fd75a2a32bca3a5e5e27 |
|
23-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Use findRegisterUseOperand to find a kill of particular register. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34512 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b371f457b0ea4a652a9f526ba4375c80ae542252 |
|
19-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Re-apply my liveintervalanalysis changes. Now with PR1207 fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34428 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a284cbf667e11660840dc7bae3ee9eeaa3c7cbd2 |
|
19-Feb-2007 |
Reid Spencer <rspencer@reidspencer.com> |
For PR1207: Revert patches that caused the problem. Evan, please investigate and reapply when you've discovered the problem. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
094e3e553f57b877153828e420cd2dacfb2b364c |
|
17-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Added findRegisterDefOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34380 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
bdf44b929f6bd0983b0f0df0d2ae66610e81e149 |
|
16-Feb-2007 |
Evan Cheng <evan.cheng@apple.com> |
Print <dead> def operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34343 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4b607748d86b44cc59e5cf3eee194dfd9b0fcd86 |
|
16-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
The best unbreakage yet, addressing Bill's concerns. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c21c5eeb4f56f160e79522df2d3aab5cfe73c05d |
|
15-Dec-2006 |
Jeff Cohen <jeffc@jolt-lang.org> |
An even better unbreakage... git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e81561909d128c6e2d8033cb5465a49b2596b26a |
|
07-Dec-2006 |
Bill Wendling <isanbard@gmail.com> |
Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, are now cerr, cout, and NullStream resp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
576d123e130a8291669dd2384a3735cc4933fd00 |
|
06-Dec-2006 |
Evan Cheng <evan.cheng@apple.com> |
Move copyKillDeadInfo out-of-line. Add findRegisterUseOperand(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32273 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
67f660cb080965ea93ed6d7265a67100f2fe38e4 |
|
30-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
- MachineInstr now keeps a ptr to TargetInstrDescriptor instead of Opcode. - Remove the ugly TargetInstrDescriptors hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32032 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a09362eb975730ac624c0bd210a95655ee105296 |
|
28-Nov-2006 |
Bill Wendling <isanbard@gmail.com> |
Use llvm streams instead of <iostream> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31985 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8bcb042f22f06d034f18aee8cb5dd0a04745fd97 |
|
28-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Clean up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31957 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c0f64ffab93d11fb27a3b8a0707b77400918a20e |
|
28-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead of opcode and number of operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a138c6c73a9e594d82958af6b9ee01108e05e7ac |
|
20-Nov-2006 |
Chris Lattner <sabre@nondot.org> |
setOperand should not zap the operand list or add implicit operands to an instruction. Doing so breaks the FP stackifier, the alpha branch selector the sparc fpmover. This fixes PR1012 and CodeGen/X86/fp-stack-compare.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31876 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6b2c05f3d3c7b44183c629485ade10c18b86828d |
|
15-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Minor updates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31761 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d7de496b23fca8145f777a56281457bf64e8bbad |
|
14-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
- Let MachineInstr ctors add implicit def and use operands. Other operands will be inserted before these operands. If the opcode changes (by setOpcode), the implicit operands are updated as well. - Added IsKill, IsDead fields to MachineOperand in preparation for changes that move kill / dead info to MachineInstr's. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31711 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3ba433a7e85c4f5b943ae6585a0327f4ccd461a0 |
|
11-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add methods to add implicit def use operands to a MI. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
438f7bc67cf235ccee7e6f7ac7f4ae2186eb8020 |
|
10-Nov-2006 |
Evan Cheng <evan.cheng@apple.com> |
Add implicit def / use operands to MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31633 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
13a04125df039d118c688df26998343a00d8a749 |
|
25-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
be more aggressive about matching identical instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31179 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8ace2cd034be10c09be51daf08c3dda327f54262 |
|
21-Oct-2006 |
Chris Lattner <sabre@nondot.org> |
implement MachineOperand::isIdenticalTo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@31088 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d8f44e07b89e651b2f0e3b0d680a775f44e667da |
|
05-Sep-2006 |
Chris Lattner <sabre@nondot.org> |
Only call isUse/isDef on register operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@30118 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8d3af5e7d082dbd029c3987ceadbdcf9e49af6d7 |
|
15-Jun-2006 |
Evan Cheng <evan.cheng@apple.com> |
Instructions with variable operands (variable_ops) can have a number required operands. e.g. def CALL32r : I<0xFF, MRM2r, (ops GR32:$dst, variable_ops), "call {*}$dst", [(X86call GR32:$dst)]>; TableGen should emit operand informations for the "required" operands. Added a target instruction info flag M_VARIABLE_OPS to indicate the target instruction may have more operands in addition to the minimum required operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28791 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
00aff7d9772e4945e3a946e70a3ef9998006b8de |
|
26-May-2006 |
Evan Cheng <evan.cheng@apple.com> |
Remove a bogus cast. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28492 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6e994b74921d8519472a087246d7a56731e958d4 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Final pass of minor cleanups for MachineInstr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28110 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
943b5e117fe9a087f9aa529a2632c2d32cc22374 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove redundancy and a level of indirection when creating machine operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28107 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8b915b4ed2c6e43413937ac71c0cbcf476ad1a98 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove and simplify some more machineinstr/machineoperand stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28105 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2d90ac7ca6117d3b160dde8a4f322c1079a6ffce |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Rename MO_VirtualRegister -> MO_Register. Clean up immediate handling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28104 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e53f4a055f74bded20d6129b4724ddd17fd199f6 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Move some methods out of MachineInstr into MachineOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28102 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
63b3d7113d93fda622c4954c6b1d046ce029044e |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
There shalt be only one "immediate" operand type! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28099 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ceb408f6a263e319683209ae5c6f8d1e3e4d9b69 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Change "value" in MachineOperand to be a GlobalValue, as that is the only thing that can be in it. Remove a dead method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28098 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4efeab208cf0fe7ae2f68bcdd1264a8fdb18826c |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more dead V9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28094 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ea50fabfd4e5fad25a25b312f64a9b2a53363586 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove a bunch more SparcV9 specific stuff git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
34fb2cad46adb39f3c2cc705fbbf439a383d0f65 |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some more V9-specific stuff. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28092 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
10f3597c4e0c13ecf0272b7ca0be741a91ade48c |
|
04-May-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some more unused stuff from MachineInstr that was leftover from V9. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@28091 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
37efe6764568a3829fee26aba532283131d1a104 |
|
22-Apr-2006 |
Nate Begeman <natebegeman@mac.com> |
JumpTable support! What this represents is working asm and jit support for x86 and ppc for 100% dense switch statements when relocations are non-PIC. This support will be extended and enhanced in the coming days to support PIC, and less dense forms of jump tables. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1b87c42c82883e37099c777d08474f89834010dd |
|
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
This field no longer exists git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27899 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
02e5f8dcda4319e05fe49301ab72c386ed859e16 |
|
20-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Remove some of the obvious V9-specific cruft git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27893 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
48d7c069c76882475c23de153bda9483cd3c9bb4 |
|
17-Apr-2006 |
Chris Lattner <sabre@nondot.org> |
Add a MachineInstr::eraseFromParent convenience method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@27775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
edf128a7fa90f2b0b7ee24741a04a7ae1ecd6f7e |
|
22-Apr-2005 |
Misha Brukman <brukman+llvm@gmail.com> |
Remove trailing whitespace git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21420 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ca4f6ebefc4dc55d13a0182a0be5b02e92fc63ea |
|
15-Oct-2004 |
Chris Lattner <sabre@nondot.org> |
Allow machine operands to represent global variables with offsets. This is useful when you have a reference like: int A[100]; void foo() { A[10] = 1; } In this case, &A[10] is a single constant and should be treated as such. Only MO_GlobalAddress and MO_ExternalSymbol are allowed to use this field, no other operand type is. This is another fine patch contributed by Jeff Cohen!! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17007 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
551ccae044b0ff658fe629dd67edd5ffe75d10e8 |
|
02-Sep-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Changes For Bug 352 Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ce22e76996d3ff0930716fa60c29df60a7e0481b |
|
09-Jul-2004 |
Misha Brukman <brukman+llvm@gmail.com> |
* Doxygenify comments * Fix spacing, grammar in comment * Make code layout consistent * Wrap code at 80 cols * Delete spurious blank lines No functional changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14721 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
954da37bb492b519f5c31dc360f2a142567e08b4 |
|
04-Jul-2004 |
Reid Spencer <rspencer@reidspencer.com> |
Add #include <iostream> since Value.h does not #include it any more. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b140762a45d21aaed054f15adaff0fc2274d939d |
|
25-Jun-2004 |
Tanya Lattner <tonic@nondot.org> |
Made a fix so that you can print out MachineInstrs that belong to a MachineBasicBlock that is not yet attached to a MachineFunction. This change includes changing the third operand (TargetMachine) to a pointer for the MachineInstr::print function. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
988b7ba5bad830379a7108c1f9ea36fb29073245 |
|
18-Jun-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Make debugging dumps w/ multiple MachineBBs for a given LLVM BB readable. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14205 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9bcdcd17c7219dbc68de2f11ca2de86471c8c390 |
|
02-Jun-2004 |
Chris Lattner <sabre@nondot.org> |
Adjust to new TargetMachine interface git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13956 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0c63e03e04d3982e1913479bba404c3debc9a27e |
|
24-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Changed clone to be const. Changed copy constructor to set parent, prev, and next pointers to null. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13706 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b5159ed0cb7943e5938782f7693beb18342165ce |
|
23-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Fixed up my changes to add support for cloning Machine Instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13665 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
466b534a570f574ed485d875bbca8454f68dcb52 |
|
23-May-2004 |
Tanya Lattner <tonic@nondot.org> |
Adding support to clone MachineInstr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13661 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c54839573cd9ffa6af33dc5190cc40d498534585 |
|
03-Mar-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Make MachineOperand's value named 'contents'. Make really, really sure it is always completely initialized and copied. Also, fix up many comments and asserts. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12100 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
561c0107b20e9be4a02bad57a68ae9e4f96461a9 |
|
29-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
int64_t -> int git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11977 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ddcfd9e6fafdbbe5c973477e537119e73c115ee4 |
|
27-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Fix crash caused by passing register 0 to MRegisterInfo::isPhysicalRegister(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11894 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
11d1f21e1d400826ccc3cae5702d6a626baa906b |
|
23-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix bugs in finegrainification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11758 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0742b59913a7760eb26f08121cd244a37e83e3b3 |
|
23-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Finegrainify namespacification git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11757 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8517e1f0beea9b5e47974f083396d53294c390ad |
|
19-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Fix a __LONG__ term annoyance of mine: symbolic registers weren't being printed by operator<< on MachineInstr's, and looking up what register "24" is all of the time was greatly annoying. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
aad5c0505183a5b7913f1a443a1f0650122551cc |
|
16-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add LeakDetection to MachineInstr. Move out of line member functions of MachineBasicBlock to MachineBasicBlock.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11497 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
be766c72464116a445a02b542a450c4274bab5d0 |
|
13-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Remove getAllocatedRegNum(). Use getReg() instead. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11393 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
21326fc2ad47ee7e73a8c0b03a4a0cc0b0a0c4e8 |
|
13-Feb-2004 |
Brian Gaeke <gaeke@uiuc.edu> |
Add head-of-file comments and Doxygen comments. Tighten up a lot of whitespace. Rename SetMachineOperandConst's formal parameters to match other methods here. Mark some methods as being used only by the SPARC back-end. Fix a missing-paren bug in OutputValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11363 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ab8672c8bb83e722b856eac67863542ea7e0cbb2 |
|
12-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Add parent pointer to MachineInstr that points to owning MachineBasicBlock. Also change opcode to a short and numImplicitRefs to an unsigned char so that overall MachineInstr's size stays the same. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2a90ba60175f93e7438165d8423100aa573c16c5 |
|
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
Rename the opCode instance variable to Opcode git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3081db8d01aaac5b3f9e9a30b36cb3eeb8c3cb0a |
|
12-Feb-2004 |
Chris Lattner <sabre@nondot.org> |
This field is never read git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11346 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
14be64018fb38d1fa535b9cd12d11371f4eba3b5 |
|
04-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Modify the two address instruction pass to remove the duplicate operand of the instruction and thus simplify the register allocation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11124 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4e7854407ced8e2160592675918312a20cfb7cde |
|
03-Feb-2004 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
When an instruction like: A += B had both A and B virtual registers spilled, A was loaded from its stack location twice. This fixes the bug. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11093 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4d7af65903cbc858464362e70a6adf499982ec8a |
|
14-Dec-2003 |
Alkis Evlogimenos <alkis@evlogimenos.com> |
Change interface of MachineOperand as follows: a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse() b) add isUse(), isDef() c) rename opHiBits32() to isHiBits32(), opLoBits32() to isLoBits32(), opHiBits64() to isHiBits64(), opLoBits64() to isLoBits64(). This results to much more readable code, for example compare "op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used very often in the code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10461 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d0fde30ce850b78371fd1386338350591f9ff494 |
|
11-Nov-2003 |
Brian Gaeke <gaeke@uiuc.edu> |
Put all LLVM code into the llvm namespace, as per bug 109. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9903 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b576c94c15af9a440f69d9d03c2afead7971118c |
|
20-Oct-2003 |
John Criswell <criswell@uiuc.edu> |
Added LLVM project notice to the top of every C++ source file. Header files will be on the way. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@9298 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6eba07a6a3dacec09aefa54a305b06c98b0c86c1 |
|
17-Sep-2003 |
Misha Brukman <brukman+llvm@gmail.com> |
Fixed spelling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@8588 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2010f7baec18914b8a5d1b2b4c3c21511fa6e25d |
|
07-Aug-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix assertion in MachineInstr::substituteValue(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7675 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
610234d5c9582e2645738ad9c347b855962122b7 |
|
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Do not insert physical regsiters into the regsUsed set git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7617 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a2dd745613fdb9deff6037285f4efc20248c7b3d |
|
05-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
All callers of these methods actually wanted them to preserve the flags, so get rid of the def/use parameters that were getting passed in. **** This now changes the semantics of these methods to preserve the flags, not clobber them! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7602 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e109de3166484d9d2e111efd44bc05a60bd8b056 |
|
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Simplify code, eliminating the need for the X86 isVoid target instr flag git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7534 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
925b771dc378d6c88da44cd5b6650f2758c3c0a7 |
|
03-Aug-2003 |
Chris Lattner <sabre@nondot.org> |
Remove using decl git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
627eb31cd791f808eaa048478d01222577a30a1a |
|
10-Jul-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Change interface to MachineInstr::substituteValue to specify more precisely which args can be substituted: defsOnly, defsAndUses or usesOnly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7154 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3497782f3843007de3be0c43e3ff206a01e2ccac |
|
31-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow explicit physical registers for implicit operands. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6468 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5f2180c53330502eb2f0f5bf3f21a838ad800906 |
|
27-May-2003 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
(1) Added special register class containing (for now) %fsr. Fixed spilling of %fcc[0-3] which are part of %fsr. (2) Moved some machine-independent reg-class code to class TargetRegInfo from SparcReg{Class,}Info. (3) Renamed MachienOperand::opIsDef to MachineOperand::opIsDefOnly() and related functions and flags. Fixed several bugs where only "isDef" was being checked, not "isDefAndUse". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6341 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b66fdc2934133872db1407bee749b69a4b59b2b7 |
|
15-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Remove obsolete ctor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3501feab811c86c9659248a4875fc31a3165f84d |
|
14-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Rename MachineInstrInfo -> TargetInstrInfo git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5272 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8d95ef4973226044cefdd6dc237d3c326ffc15b3 |
|
13-Jan-2003 |
Chris Lattner <sabre@nondot.org> |
Add support for 3 new forms of MachineOperand git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5217 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
10cb79b48430ea7679e83ae045aaeadea04a0cc5 |
|
28-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
* Add printing support for FrameIndex operands git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5194 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2109f502d646a1bafc7b21a14347a71771a7b4cf |
|
15-Dec-2002 |
Chris Lattner <sabre@nondot.org> |
Implement printing of MBB arguments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5053 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
af55be15dfa5321f470ce9734fabd858f5af7a88 |
|
18-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Print is const! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
570f55de8d9f53a0d8a5dc6dcbb6aaba46b1b6db |
|
17-Nov-2002 |
Chris Lattner <sabre@nondot.org> |
Remove only uses of markDef/markDefAndUse methods git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4719 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
188732c971e06823a6dcd3320d5f8429642acedb |
|
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove fixme git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4447 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6a592271fb2946a0704b06fd66199987cdd40b3c |
|
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Add special code to make printing SSA form machine instructions nicer git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4446 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2a79a0927c479b69316aa275c1f79c74d20e8040 |
|
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Use MRegisterInfo, if available, to print symbolic register names git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4438 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1049164aa6b06d91d9b3b557a9a213eaf3f6319a |
|
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Implement structured machine code printing git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4435 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ddd7fcb887be752ec8167276a697994ad9cb9c4e |
|
30-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Implement autoinserting ctor git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4426 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
a2bae305fb5a870c4ef753ed290a7ddea73ec82b |
|
29-Oct-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Remove separate vector of implicit refs from MachineInstr, and instead record them as extra operands in the operands[] vector. Also, move CallArgsDescriptor into this class instead of making it an annotation on the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4399 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f1757c414cbf7d1b7a11cc8287fd26c2ce13fb41 |
|
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Move TargetInstrDescriptors extern to the one .cpp file that refers to it: MachineInstr.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d9512caca8ec1e5488cdc94b34986c8ab2d447bb |
|
29-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Use higher level methods, don't use TargetInstrDescriptors directly! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4389 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9a8e4121aa4121100fb562134c098aeb38f70b37 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove all traces of the "Opcode Mask" field in the MachineInstr class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4359 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b98a53f201fd3652f4b7e37d1f2cb3b9b0775d45 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove more default arguments that are never used git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4358 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7279122e668816bed0d4f38d3392bbab0140fad0 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove default operands that are never used git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
413746e9833d97a8b463ef6a788aa326cf3829a2 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
* Make MachineOperand ctors private, so MachineOperand can only be created by MachineInstr. * Add a bunch of new methods to allow incremental addition of operands to the machine instr instance. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
2f305989b395a0a8bf00c4b9dc140a6df051245e |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Remove two arguments that are never specified git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
572f5c8c0cf66cd6f53dda255cd8c4d8f27d8505 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Fairly major overhaul of MachineInstr & Operand classes - Inline methods that are mostly a single line anyway - Eliminate several methods that were never called - Group methods a bit more consistently git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4329 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0be79c6c1bc4fca31599f396528511506e3a1378 |
|
28-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
Add #includes now that MachineInstr.h doesn't include llvm/Target/MachineInstrInfo.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4327 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
27a08935ca4ccf2121c2cf4bfbf148e2382c7762 |
|
23-Oct-2002 |
Chris Lattner <sabre@nondot.org> |
- Two minor improvements to the MachineInstr class to reduce footprint and overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a bitvector. Sped up LLC a little less than 10% in a debug build! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e8b57ef2603ed522083dc18e559ca4e20abf22ae |
|
20-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method MachineInstr::replace to rewrite a machine instruction in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3843 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8c6936a58b75d7d185014839ea95377eb2fbd878 |
|
16-Sep-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Dump routine now writes out allocated register numbers if available. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3737 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e2a78e31862c2b6142491db5a67065756d6870be |
|
14-Aug-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add method MachineInstr::substituteValue() which substitutes one Value with another one in all operands and implicit references of the machine instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3306 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
035dfbe7f2d109008d2d62d9f2a67efb477a7ab6 |
|
09-Aug-2002 |
Chris Lattner <sabre@nondot.org> |
* Removed extraneous #includes * Fixed file headers to be consistent with the rest of LLVM * Other minor fixes git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3278 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0c0edf8afc35a42b15a24ebb5fa5f3fc674290ae |
|
25-Jul-2002 |
Chris Lattner <sabre@nondot.org> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3075 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3bc9ef9317982cd7157ff29fb6bc3a60a11c3f78 |
|
10-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Add support for marking each operand as a %hh, %hm, %lm or %lo. Represent previous bools and these ones with flags in a single byte per operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2860 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7a4be9580e095ca4bffd16ec6ec4882f6270fb09 |
|
09-Jul-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.{cpp,h}. An (explicit or implicit) operand may now be both a def and a use. Also add a set of regs used by each instruction. dump() no longer takes an optional argument, which doesn't work in gdb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2821 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
93240fe6b1f79e9ccb271a214a01141f8c2c123a |
|
25-Apr-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improve printing during dumps. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2311 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4d669b510c1d609c6b3fe98ac14ae38bd7c011f6 |
|
09-Apr-2002 |
Chris Lattner <sabre@nondot.org> |
s/method/function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@2177 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c356e565a69e56993d018c7d94194e504a78285f |
|
18-Mar-2002 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix in setting CC register. Also use distinct names for the three types of SetMachineOperand to avoid painful overloading problems and errors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1904 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
3801f6d38371b734d9de2fb8394ca75d2bf190eb |
|
03-Feb-2002 |
Chris Lattner <sabre@nondot.org> |
* Prune #includes * Remove MachineCodeFor(Method|VMInstr) code to their own .cpp files git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1649 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
697954c15da58bd8b186dbafdedd8b06db770201 |
|
20-Jan-2002 |
Chris Lattner <sabre@nondot.org> |
Changes to build successfully with GCC 3.02 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1503 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7a1767520611d9ff6face702068de858e1cadf2c |
|
04-Dec-2001 |
Chris Lattner <sabre@nondot.org> |
Renamed inst_const_iterator -> const_inst_iterator Renamed op_const_iterator -> const_op_iterator Renamed PointerType::getValueType() -> PointerType::getElementType() git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1408 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
07c7086bd29b5c7223945cbdeae48494874de38f |
|
15-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added naming to inserted phi copy values - for easy debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1325 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7c47c7201d762c24bc6140b6e5a2ac511aec5cb1 |
|
15-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Modify AllocateLocalVar method to take a size argument. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1318 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
8d24337eea5f9462908b7ac07a997935e31ddd59 |
|
14-Nov-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Small changed to printing a machine operand - It the operand is a def, it prints a star after it - only for debugging git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1309 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e492c9d4d1a161cd0972bfb8bab33f073fb018b4 |
|
13-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Bug fix in offset alignment computations: don't subtract the padding value from size *before* subtracting size from offset! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1283 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
d9beb975f20cea2d3e9c3f528068cd25b80a1b72 |
|
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improved printing routines. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1263 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5567e942c03056cc566225e93a93f6516d73f305 |
|
12-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Adjust all stack variable offsets to be aligned by size. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
f1a0a1081347ff6177b8b57dc16d841cde89e7fc |
|
11-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Fix errors in computing downgrowing offsets, and in computing size of extra outgoing args. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1256 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
be49526193c5d8856d0b3c2721dfa6a4c4010d6d |
|
08-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Major overhaul of stack frame management. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1185 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
df1c3b8398d1df253ebd389ac1068ec732a2f28f |
|
05-Nov-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Make reg. numbers signed ints. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1137 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1d6158f98fb46ccf86af8285f066c8a513e453c5 |
|
22-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Added class MachineCodeForMethod. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@947 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
69917e27af9248cbce98bb56f1e1b5286aede759 |
|
19-Oct-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Added implict operand printing for operator( ostream, MachineInstr&) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@912 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6d35326cd549163a9af189dddca45c92f6014242 |
|
18-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
1. Add a bottom-up pass on BURG trees that is used to fix constant operands. Needs to be bottom up because constant values may be forward-substituted to their uses (i.e., into the parent in the BURG tree). 2. Move most of the constant-fixup code into machine-indepedent file InstrSelectionSupport.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@859 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
9aba1d3307a3ce4a30fa95a08b6b68c445a49b8a |
|
10-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved code generation support routines to InstrSelectionSupport.cpp. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@717 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1d87bcf4909b06dcd86320722653341f08b8b396 |
|
01-Oct-2001 |
Chris Lattner <sabre@nondot.org> |
Convert more code to use new style casts Eliminate old style casts from value.h git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@696 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e949da5bb18f89de40b6781237dfe616cba7bfc9 |
|
01-Oct-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Improved dump for disp type operand. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@679 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6e447181928b95902c38ea89e57bc835ecd83cb5 |
|
18-Sep-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Minor changes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@613 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
ed8f674b9a18312886355288ac49f9a2dd5e4e94 |
|
15-Sep-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added setRegForValue to MachineOperand class git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@591 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
c2a2396e17f8fd6c78afd81368d2b80e8cfe6c42 |
|
12-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate MainTreeNode function git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@550 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b221a763862ccaed46dee3fbf56c384981d84fbd |
|
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix a bug I introduced (assertion failed: Unknown operand type), and convert to predicate style for type checks git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@531 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
990f2a5a1a0b16d0dc07cee486033c0a3864334e |
|
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Implement the subset of the GetConstantValueAsSignedInt function that is needed, locally. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@524 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
e6fdb11e1ae823d69e646e76828ccb5d427a9d3a |
|
10-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix problems with freeing memory twice git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@520 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
56786d268feeb6d0e895b6c4cba60139285c47d6 |
|
09-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
Fix build breakage. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@511 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
822b4fb896846b87dd11a330ae13f2239329aeef |
|
07-Sep-2001 |
Chris Lattner <sabre@nondot.org> |
The header file for a translation unit should always be included first System headers should be last git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@475 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
5b79591450c47920139705712a402251af7eed79 |
|
29-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Moved function PrintMachineInstructions here. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@392 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
149977b48a02735861697d5b4df1fe5a8592245f |
|
13-Aug-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Always set isDef for operand in position resultPos. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@357 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
b0cdcda42a99b5fb4d99c773006acb175ef391a0 |
|
13-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
Changed SetMachineOpernad calls in Set3OperandsFromInstr so that the result position is a def (i.e., added true to the end of call) -- Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@356 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
0b03c6a492a0e09049b6c0bd127bd0ede7732aa5 |
|
07-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
*** empty log message *** git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@351 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
45c171ee25619f6650e90fa5e3102d9969fd82b3 |
|
07-Aug-2001 |
Ruchira Sasanka <sasanka@students.uiuc.edu> |
added a default isDef arg to SetMachineOperand method - Ruchira git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@350 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
1885da4f49cf32efde2d4c840365c4333a0c8579 |
|
31-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Allow machine instructions with variable numbers of arguments. This is used only by Phi for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@336 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
6a175e01eb164baac5cc16311c474ff644ce17c1 |
|
28-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Eliminate separate enum for operand register type. Use union for alternative data for different operand types. Add iterator over Value* operands in a MachineInstr. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@307 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
4bc3daaa3f3c9f22d5dd695e987e8d20f999791c |
|
23-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminated the Unique class in favor of NonCopyable and NonCopyableV git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
68498cefe602bf5364168b4acd0bd5806cdd72ec |
|
22-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Eliminate lots of unnecessary #includes and forward decls there are probably more to kill git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@261 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
7e583cfafeb07713e5ceadcfe28b70111a528d97 |
|
21-Jul-2001 |
Chris Lattner <sabre@nondot.org> |
Renamed include/llvm/Codegen to include/llvm/CodeGen git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@253 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|
70bc4b5d1a3795a8f41be96723cfcbccac8e1671 |
|
21-Jul-2001 |
Vikram S. Adve <vadve@cs.uiuc.edu> |
Instruction selection via pattern matching on instruction trees using BURG. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@231 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/CodeGen/MachineInstr.cpp
|