summaryrefslogtreecommitdiff
path: root/include
Commit message (Collapse)AuthorAge
* Adding the MicroBlaze backend.Wesley Peck2010-02-23
| | | | | | | | | | | | | | The MicroBlaze is a highly configurable 32-bit soft-microprocessor for use on Xilinx FPGAs. For more information see: http://www.xilinx.com/tools/microblaze.htm http://en.wikipedia.org/wiki/MicroBlaze The current LLVM MicroBlaze backend generates assembly which can be compiled using the an appropriate binutils assembler. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96969 91177308-0d34-0410-b5e6-96231b3b80d8
* This is the first patch to put the needed bits in place to eventually allow codeKevin Enderby2010-02-23
| | | | | | | | | | | | to be aligned with optimal nops. This patch does not change any functionality and when the compiler is changed to use EmitCodeAlignment() it should also not change the resulting output. Once the compiler change is made and everything looks good the next patch with the table of optimal X86 nops will be added to WriteNopData() changing the output. There are many FIXMEs in this patch which will be removed when we have better target hooks (coming soon I hear). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96963 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct option forwarding: initial implementation.Mikhail Glushenkov2010-02-23
| | | | | | Does not work, but the infrastructure changes are in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96920 91177308-0d34-0410-b5e6-96231b3b80d8
* New experimental/undocumented feature: 'works_on_empty'.Mikhail Glushenkov2010-02-23
| | | | | | For now, just enough support to make -filelist work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96918 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a way to enable '-opt=foo' forwarding.Mikhail Glushenkov2010-02-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96916 91177308-0d34-0410-b5e6-96231b3b80d8
* fix an off-by-one error.Chris Lattner2010-02-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96844 91177308-0d34-0410-b5e6-96231b3b80d8
* switch the value# in OPC_CompleteMatch and OPC_EmitNode to use aChris Lattner2010-02-23
| | | | | | | VBR encoding for the insanity being perpetrated by the spu backend. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96843 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new Push2 opcode for targets (like cellspu) which haveChris Lattner2010-02-22
| | | | | | | | | ridiculously ginormous patterns and need more than one byte of displacement for encodings. This fixes CellSPU/fdiv.ll. SPU is still doing something else ridiculous though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96833 91177308-0d34-0410-b5e6-96231b3b80d8
* Updated version of r96634 (which was reverted due to failing 176.gcc andJim Grosbach2010-02-22
| | | | | | | | 126.gcc nightly tests. These failures uncovered latent bugs that machine DCE could remove one half of a stack adjust down/up pair, causing PEI to assert. This update fixes that, and the tests now pass. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96822 91177308-0d34-0410-b5e6-96231b3b80d8
* expand my hack to work with nodes that have flags but no chains and the Chris Lattner2010-02-22
| | | | | | | | isel doesn't know the correct # results. This fixes 8 codegen tests, down to 22 failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96815 91177308-0d34-0410-b5e6-96231b3b80d8
* add a new CheckMultiOpcode opcode for checking that a nodeChris Lattner2010-02-22
| | | | | | | | has one of the list of acceptable opcodes for a complex pattern. This fixes 4 regtest failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96814 91177308-0d34-0410-b5e6-96231b3b80d8
* add some debug hooks for tracking the behavior of the isel.Chris Lattner2010-02-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96812 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix various doxygen warnings.Dan Gohman2010-02-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96779 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename a variable to avoid a -Wshadow warning.Dan Gohman2010-02-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96776 91177308-0d34-0410-b5e6-96231b3b80d8
* enhance my hack for flags handling, this allows us to passChris Lattner2010-02-22
| | | | | | | CodeGen/X86/pr2182.ll. Down to 13 x86 failures out of ~1100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96770 91177308-0d34-0410-b5e6-96231b3b80d8
* fix most of the failures in the x86 suite by handling multiple Chris Lattner2010-02-21
| | | | | | | | | | | result nodes correctly. Note that this includes a horrible hack in DAGISelHeader which cannot be fixed reasonably without eliminating (parallel) from input patterns. That, in turn, can't be done until we support writing multiple result patterns for the X86and_flag and related multiple-result nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96767 91177308-0d34-0410-b5e6-96231b3b80d8
* MC: Sketch registry support for target specific assembler backends.Daniel Dunbar2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96762 91177308-0d34-0410-b5e6-96231b3b80d8
* Formatting tweaks (trailing whitespace, ordering, comments).Daniel Dunbar2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96761 91177308-0d34-0410-b5e6-96231b3b80d8
* fix an odd thinko in an assertion, all arm tests pass now.Chris Lattner2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96758 91177308-0d34-0410-b5e6-96231b3b80d8
* It turned out that we failed to emit proper symbol stubs on non-x86/darwin ↵Anton Korobeynikov2010-02-21
| | | | | | | | | for ages (we emitted a reference to a stub, but no stub was emitted). The code inside x86-32/macho target objfile lowering should actually be the generic one - move it there. This (I really, really hope) should fix EH issues on ppc/darwin and arm/darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96755 91177308-0d34-0410-b5e6-96231b3b80d8
* speculatively teach OPC_CheckValueType and OPC_EmitNode to handleChris Lattner2010-02-21
| | | | | | | MVT::iPTR. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96753 91177308-0d34-0410-b5e6-96231b3b80d8
* teach OPC_CheckType to handle MVT::iPTR, down to 2 ppc failures.Chris Lattner2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96752 91177308-0d34-0410-b5e6-96231b3b80d8
* make this check a bit more generous, it may be outliving its Chris Lattner2010-02-21
| | | | | | | utility. Down to 6 ppc failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96751 91177308-0d34-0410-b5e6-96231b3b80d8
* Relax an assertion a bit. We allow replacing things likeChris Lattner2010-02-21
| | | | | | | | | <4 x i32> with <4 x float> values if they end up the same register class. This gets us up to 231 passes on the ppc tests (only 7 fails). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96750 91177308-0d34-0410-b5e6-96231b3b80d8
* when a match fails and we have to rollback, make sure to keep 'N' in Chris Lattner2010-02-21
| | | | | | | | sync with the top of stack. This fixes a bunch of failures on larger testcases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96732 91177308-0d34-0410-b5e6-96231b3b80d8
* handle optional in flags that aren't present.Chris Lattner2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96731 91177308-0d34-0410-b5e6-96231b3b80d8
* fix two bugs in OPC_EmitRegister, which makes ppc happier.Chris Lattner2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96728 91177308-0d34-0410-b5e6-96231b3b80d8
* implement the last known missing feature: updating uses of results Chris Lattner2010-02-21
| | | | | | | | | of the matched pattern to use the newly created node results. Onto the "making it actually work" phase! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96724 91177308-0d34-0410-b5e6-96231b3b80d8
* Reduce size of 'StackAlignment' field from 5 to 3 bits. Seriously, who needs aCharles Davis2010-02-21
| | | | | | | 2GB-aligned stack anyway? 256 bytes is plenty. Requested by Chris. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96718 91177308-0d34-0410-b5e6-96231b3b80d8
* Lots of improvements to the new dagisel emitter. This gets it toChris Lattner2010-02-21
| | | | | | | | | | | | | | | | | | | | | | the point where it is to the 95% feature complete mark, it just needs result updating to be done (then testing, optimization etc). More specificallly, this adds support for chain and flag handling on the result nodes, support for sdnodexforms, support for variadic nodes, memrefs, pinned physreg inputs, and probably lots of other stuff. In the old DAGISelEmitter, this deletes the dead code related to OperatorMap, cleans up a variety of dead stuff handling "implicit remapping" from things like globaladdr -> targetglobaladdr (which is no longer used because globaladdr always needs to be legalized), and some minor formatting fixes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96716 91177308-0d34-0410-b5e6-96231b3b80d8
* add a hook so that the new isel can run SDNodeXForms.Chris Lattner2010-02-21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96714 91177308-0d34-0410-b5e6-96231b3b80d8
* Eliminate some uses of immAllOnes, just use -1, it doesChris Lattner2010-02-21
| | | | | | | | the same thing and is more efficient for the matcher. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96713 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 96634. It causes assertion failures for 126.gcc and 176.gcc inBob Wilson2010-02-19
| | | | | | | the armv6 nightly tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96691 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert Anton's most recent EH patch (r96637), since it breaks a lot ofBob Wilson2010-02-19
| | | | | | | ARM and Thumb tests. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96680 91177308-0d34-0410-b5e6-96231b3b80d8
* Correct LastPrimitiveTyID: MetadataType is a primitive type.Duncan Sands2010-02-19
| | | | | | | This change probably has no functional effect. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96669 91177308-0d34-0410-b5e6-96231b3b80d8
* add emitter support for integer constants and simple physreg references.Chris Lattner2010-02-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96663 91177308-0d34-0410-b5e6-96231b3b80d8
* recommit 96626, evidence that it broke things appearsDale Johannesen2010-02-19
| | | | | | | | to be spurious git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96662 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 96626, which causes build failure on ppc Darwin.Dale Johannesen2010-02-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96653 91177308-0d34-0410-b5e6-96231b3b80d8
* Use the same encoding for EH stuff uniformly on all MachO targets.Anton Korobeynikov2010-02-19
| | | | | | This hopefulyl should unbreak EH on PPC/Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96637 91177308-0d34-0410-b5e6-96231b3b80d8
* Radar 7636153. In the presence of large call frames, it's not sufficientJim Grosbach2010-02-19
| | | | | | | | | | | for ARM to just check if a function has a FP to determine if it's safe to simplify the stack adjustment pseudo ops prior to eliminating frame indices. Allow targets to override the default behavior and does so for ARM and Thumb2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96634 91177308-0d34-0410-b5e6-96231b3b80d8
* Indvars needs to explicitly notify ScalarEvolution when it is replacingDan Gohman2010-02-18
| | | | | | | | | a loop exit value, so that if a loop gets deleted, ScalarEvolution isn't stick holding on to dangling SCEVAddRecExprs for that loop. This fixes PR6339. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96626 91177308-0d34-0410-b5e6-96231b3b80d8
* getSplatIndex assumes that the first element of the mask contains the splat ↵Mon P Wang2010-02-18
| | | | | | | | | | index which is not always true if the mask contains undefs. Modified it to return the first non undef value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96621 91177308-0d34-0410-b5e6-96231b3b80d8
* add support for referencing registers and immediates,Chris Lattner2010-02-18
| | | | | | | | | building the tree to represent them but not emitting table entries for them yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96617 91177308-0d34-0410-b5e6-96231b3b80d8
* Always normalize spill weights, also for intervals created by spilling.Jakob Stoklund Olesen2010-02-18
| | | | | | | | | | | | | | Moderate the weight given to very small intervals. The spill weight given to new intervals created when spilling was not normalized in the same way as the original spill weights calculated by CalcSpillWeights. That meant that restored registers would tend to hang around because they had a much higher spill weight that unspilled registers. This improves the runtime of a few tests by up to 10%, and there are no significant regressions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96613 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix comments.Devang Patel2010-02-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96610 91177308-0d34-0410-b5e6-96231b3b80d8
* Destroy MDNodes gracefully while deleting llvm context.Devang Patel2010-02-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96609 91177308-0d34-0410-b5e6-96231b3b80d8
* Refer to -help instead of --help since this is what tools themselves say.Duncan Sands2010-02-18
| | | | | | | | | Also, have tools output -help-hidden rather than refer to --help-hidden, for consistency, and likewise adjust documentation. This doesn't change every mention of --help, only those which seemed clearly safe. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96578 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a few unused parameter warnings.Eric Christopher2010-02-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96533 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the non-temporal bit "significant" in MemSDNodes so they aren'tDavid Greene2010-02-17
| | | | | | | CSE'd or otherwise combined with temporal MemSDNodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96505 91177308-0d34-0410-b5e6-96231b3b80d8
* Add Regex::sub, for doing regular expression substitution with backreferences.Daniel Dunbar2010-02-17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96503 91177308-0d34-0410-b5e6-96231b3b80d8