summaryrefslogtreecommitdiff
path: root/lib/Target/X86
Commit message (Collapse)AuthorAge
* make -fno-rtti the default unless a directory builds with REQUIRES_RTTI.Chris Lattner2010-01-24
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94378 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a parsing problem on instructions like:Chris Lattner2010-01-24
| | | | | | | | | | movw $8, (_cost_table_-L97$pb)+66(%eax) After the parens, we could still have a binop. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94345 91177308-0d34-0410-b5e6-96231b3b80d8
* Improved widening loads by adding support for wider loads ifMon P Wang2010-01-24
| | | | | | | | the alignment allows. Fixed a bug where we didn't use a vector load/store for PR5626. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94338 91177308-0d34-0410-b5e6-96231b3b80d8
* resolve a fixme: the "nonexecutable stack directive" is actuallyChris Lattner2010-01-23
| | | | | | | | | | a .section. Switch to it with SwitchSection. However, I think that this directive should be safe on any ELF target. If so, we should hoist it up out of the X86 and SystemZ targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94298 91177308-0d34-0410-b5e6-96231b3b80d8
* move the various directive enums out of the MCStreamer classChris Lattner2010-01-23
| | | | | | | into a new MCDirectives.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94294 91177308-0d34-0410-b5e6-96231b3b80d8
* Don't lower splat vector load to relative to the esp if theEric Christopher2010-01-23
| | | | | | | | | | | stack may be misaligned. Update test accordingly. Patch by Evan Cheng! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94291 91177308-0d34-0410-b5e6-96231b3b80d8
* use some helpers instead of duplicating logic.Chris Lattner2010-01-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94285 91177308-0d34-0410-b5e6-96231b3b80d8
* Update CMake build.Ted Kremenek2010-01-23
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94278 91177308-0d34-0410-b5e6-96231b3b80d8
* Added the skeleton for the implementation of the X86Sean Callanan2010-01-23
| | | | | | | | target-specific AsmLexer, and added the appropriate registration calls. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94275 91177308-0d34-0410-b5e6-96231b3b80d8
* Modified the register matcher function in AsmMatcher toSean Callanan2010-01-23
| | | | | | | | | | | | be static. Also made it possible for clients to get it and no other functions from ...GenAsmMatcher.inc by defining REGISTERS_ONLY before including GenAsmMatcher.inc. This sets the stage for target-specific lexers that can identify registers and return AsmToken::Register as appropriate. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94266 91177308-0d34-0410-b5e6-96231b3b80d8
* Be more conservative with clustering f32 / f64 loads.Evan Cheng2010-01-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94254 91177308-0d34-0410-b5e6-96231b3b80d8
* Mark EH_RETURN64 as CodeGenOnly.Daniel Dunbar2010-01-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94205 91177308-0d34-0410-b5e6-96231b3b80d8
* Stop building RTTI information for *most* llvm libraries. NotableChris Lattner2010-01-22
| | | | | | | | | | | | | missing ones are libsupport, libsystem and libvmcore. libvmcore is currently blocked on bugpoint, which uses EH. Once it stops using EH, we can switch it off. This #if 0's out 3 unit tests, because gtest requires RTTI information. Suggestions welcome on how to fix this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94164 91177308-0d34-0410-b5e6-96231b3b80d8
* Add two target hooks to determine whether two loads are near and should be ↵Evan Cheng2010-01-22
| | | | | | scheduled together. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94147 91177308-0d34-0410-b5e6-96231b3b80d8
* create a new MCParser library and move some stuff into it.Chris Lattner2010-01-22
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94129 91177308-0d34-0410-b5e6-96231b3b80d8
* Re-implement the main strength-reduction portion of LoopStrengthReduction.Dan Gohman2010-01-21
| | | | | | | | | | | | | | | This new version is much more aggressive about doing "full" reduction in cases where it reduces register pressure, and also more aggressive about rewriting induction variables to count down (or up) to zero when doing so reduces register pressure. It currently uses fairly simplistic algorithms for finding reuse opportunities, but it introduces a new framework allows it to combine multiple strategies at once to form hybrid solutions, instead of doing all full-reduction or all base+index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94061 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a minor issue in x86 load / store folding table. movups does an ↵Evan Cheng2010-01-21
| | | | | | unaligned load so it doesn't require 16-byte alignment. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94058 91177308-0d34-0410-b5e6-96231b3b80d8
* make findDebugLoc a class methodDale Johannesen2010-01-20
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94032 91177308-0d34-0410-b5e6-96231b3b80d8
* When XDEBUG is enabled, check for SelectionDAG cycles at some keyDavid Greene2010-01-20
| | | | | | | | points. This will help us find future problems like the one described in PR6019. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@94019 91177308-0d34-0410-b5e6-96231b3b80d8
* revert 93934, removing the MCAsmInfo endianness bit. I can'tChris Lattner2010-01-20
| | | | | | | | stomache MCAsmInfo having this, and I found a better solution to this layering issue. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93985 91177308-0d34-0410-b5e6-96231b3b80d8
* Move findDebugLoc somewhere more central. FixDale Johannesen2010-01-20
| | | | | | | | | more cases where debug declarations affect debug line info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93953 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a case where debug_value was perturbing theDale Johannesen2010-01-19
| | | | | | | | line number info. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93937 91177308-0d34-0410-b5e6-96231b3b80d8
* give MCAsmInfo a 'has little endian' bit. This is unfortunate, butChris Lattner2010-01-19
| | | | | | | | | | I really want clients of the streamer to be able to say "emit this 64-bit integer" and have it get broken down right by the streamer. I may change this in the future, we'll see how it works out. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93934 91177308-0d34-0410-b5e6-96231b3b80d8
* Promoted the getTok() method to MCAsmParser so thatSean Callanan2010-01-19
| | | | | | | | the two token accessor functions are declared consistently. Modified the clients of MCAsmParser to reflect this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93916 91177308-0d34-0410-b5e6-96231b3b80d8
* Propagated the parser-side Lex function's declaration toSean Callanan2010-01-19
| | | | | | | | MCAsmParser, and changed the target-specific AsmParsers to use it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93900 91177308-0d34-0410-b5e6-96231b3b80d8
* Generalize mcasmstreamer data emission APIs to take an address spaceChris Lattner2010-01-19
| | | | | | | identifier. There is no way to work around it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93896 91177308-0d34-0410-b5e6-96231b3b80d8
* remove MAI::ZeroDirectiveSuffix, which is only used by MASM,Chris Lattner2010-01-19
| | | | | | | which we don't support anymore. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93886 91177308-0d34-0410-b5e6-96231b3b80d8
* For aligned load/store instructions, it's only required to know whether aJim Grosbach2010-01-19
| | | | | | | | | | | | | function can support dynamic stack realignment. That's a much easier question to answer at instruction selection stage than whether the function actually will have dynamic alignment prologue. This allows the removal of the stack alignment heuristic pass, and improves code quality for cases where the heuristic would result in dynamic alignment code being generated when it was not strictly necessary. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93885 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid including DebugInfo.h in AsmPrinter.hDevang Patel2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93864 91177308-0d34-0410-b5e6-96231b3b80d8
* Now that we have everything nicely factored (e.g. asmprinter is notChris Lattner2010-01-19
| | | | | | | | | | | | | | | | | | | | | | | | | | doing global variable classification anymore) and hookized, sink almost all target targets global variable emission code into AsmPrinter and out of each target. Some notes: 1. PIC16 does completely custom and crazy stuff, so it is not changed. 2. XCore has some custom handling for extra directives. I'll look at it next. 3. This switches linux/ppc to use .globl instead of .global. If .globl is actually wrong, let me know and I'll fix it. 4. This makes linux/ppc get a lot of random cases right which were obviously wrong before, it is probably now a bit healthier. 5. Blackfin will probably start getting .comm and other things that it didn't before. If this is undesirable, it should explicitly opt out of these things by clearing the relevant fields of MCAsmInfo. This leads to a nice diffstat: 14 files changed, 127 insertions(+), 830 deletions(-) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93858 91177308-0d34-0410-b5e6-96231b3b80d8
* hookize the cygwin ".linkonce" directive.Chris Lattner2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93855 91177308-0d34-0410-b5e6-96231b3b80d8
* more cleanups. Emit the .local directive even on cygwin/mingw.Chris Lattner2010-01-19
| | | | | | | | | I'm not sure that this is correct, but it causes no test failures, and just emitting a .comm without protecting its linkage somehow is surely not right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93854 91177308-0d34-0410-b5e6-96231b3b80d8
* some cleanupsChris Lattner2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93853 91177308-0d34-0410-b5e6-96231b3b80d8
* add a bool for whether .lcomm takes an alignment instead of basing this on ↵Chris Lattner2010-01-19
| | | | | | "isdarwin". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93852 91177308-0d34-0410-b5e6-96231b3b80d8
* hoist handling of external globals and special globals up to common code.Chris Lattner2010-01-19
| | | | | | | | | | | This makes a similar code dead in all the other targets, I'll clean it up in a bit. This also moves handling of lcomm up before acquisition of a section, since lcomm never needs a section. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93851 91177308-0d34-0410-b5e6-96231b3b80d8
* move production of .reference directives for static ctor/dtor list onChris Lattner2010-01-19
| | | | | | | darwin into common code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93849 91177308-0d34-0410-b5e6-96231b3b80d8
* use BSSLocal classifier to identify 'lcomm' data instead ofChris Lattner2010-01-19
| | | | | | | duplicating the logic (differently) in lots of different targets. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93847 91177308-0d34-0410-b5e6-96231b3b80d8
* now that elf weak bss symbols are handled correctly, simplify a bunch of code.Chris Lattner2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93845 91177308-0d34-0410-b5e6-96231b3b80d8
* fix a significant difference between llvm and gcc on ELF systems:Chris Lattner2010-01-19
| | | | | | | | | GCC would put weak zero initialized mutable data in the .bss section, we would put it into a crasy '.gnu.linkonce.b.test,"aw",@nobits' section. Fixing this will allow simplifications next up. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93844 91177308-0d34-0410-b5e6-96231b3b80d8
* introduce a section kind for common linkage. Use this to slightlyChris Lattner2010-01-19
| | | | | | | | | | simplify and commonize some of the asmprinter logic for globals. This also avoids printing the MCSection for .zerofill, which broke the llvm-gcc build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93843 91177308-0d34-0410-b5e6-96231b3b80d8
* Even more explanation.Bill Wendling2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93841 91177308-0d34-0410-b5e6-96231b3b80d8
* change an accessor to a predicate.Chris Lattner2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93839 91177308-0d34-0410-b5e6-96231b3b80d8
* Cleanup handling of .zerofill on darwin:Chris Lattner2010-01-19
| | | | | | | | | | | | | | | 1. TargetLoweringObjectFileMachO should decide if something goes in zerofill instead of having every target do it. 2. TargetLoweringObjectFileMachO should assign said symbols to the right MCSection, the asmprinters should just emit to the right section. 3. Since all zerofill stuff goes through mcstreamer anymore, MAI can have a bool "haszerofill" instead of having the textual directive to emit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93838 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 93811 per request.Dale Johannesen2010-01-19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93818 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable code to emit dbg.declare as DEBUG_VALUEDale Johannesen2010-01-18
| | | | | | | | | | | comments (fast isel, X86). This doesn't seem to break any functionality, but will introduce cases where -g affects the generated code. I'll be fixing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93811 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add getLSDAEncoding to the PowerPC backend.Bill Wendling2010-01-18
| | | | | | | - Greatly improve the comments to the getLSDAEncoding method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93796 91177308-0d34-0410-b5e6-96231b3b80d8
* Have FastISel handle llvm.trap().Eric Christopher2010-01-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93781 91177308-0d34-0410-b5e6-96231b3b80d8
* Add FIXME comment.Bill Wendling2010-01-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93755 91177308-0d34-0410-b5e6-96231b3b80d8
* - Add a comment to the callback indicating that it's *extremely* not a goodBill Wendling2010-01-18
| | | | | | | | | idea, but unfortunately necessary. - Default to using 4-bytes for the LSDA pointer encoding to agree with the encoded value in the CIE. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93753 91177308-0d34-0410-b5e6-96231b3b80d8
* switch x86 zerofill emission over to use MCStreamer.Chris Lattner2010-01-18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@93702 91177308-0d34-0410-b5e6-96231b3b80d8