aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* resolve the last fixme's in the new tblgen parser.Chris Lattner2007-11-221-6/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44277 91177308-0d34-0410-b5e6-96231b3b80d8
* change the Init print methods to return strings, and implement Chris Lattner2007-11-222-51/+58
| | | | | | | print in terms of that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44276 91177308-0d34-0410-b5e6-96231b3b80d8
* eliminate a bunch of print methods that are duplicate with the getAsString() ↵Chris Lattner2007-11-222-17/+1
| | | | | | method. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44275 91177308-0d34-0410-b5e6-96231b3b80d8
* Rewrite the tblgen parser in a recursive descent style, eliminating the ↵Chris Lattner2007-11-2210-3928/+1661
| | | | | | | | | | | | | bison parser. This makes the parser much easier to understand, eliminates a ton of global variables, and gives tblgen nice caret diagnostics. It is also faster, but tblgen probably doesn't care about performance. There are a couple of FIXMEs which I will take care of next. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44274 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the 'const' parameter attribute to 'readnone',Duncan Sands2007-11-226-19/+19
| | | | | | | | and the 'pure' parameter attribute to 'readonly'. Names suggested by DannyB. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44273 91177308-0d34-0410-b5e6-96231b3b80d8
* Instead of calculating constant factors, calculate the number of trailingNick Lewycky2007-11-221-54/+47
| | | | | | | bits. Patch from Wojciech Matyjewicz. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44268 91177308-0d34-0410-b5e6-96231b3b80d8
* Create nodes for inline asm so that we don't crash looking for the node later.Nick Lewycky2007-11-222-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44267 91177308-0d34-0410-b5e6-96231b3b80d8
* Switching back to strtoll. Including config.h. On VStudio builds, this ↵Chuck Rose III2007-11-211-3/+4
| | | | | | overrides strtoll. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44264 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a bug in which node A is replaced by node B, but laterDuncan Sands2007-11-212-7/+191
| | | | | | | | | node A gets back into the DAG again because it was hiding in one of the node maps: make sure that node replacement happens in those maps too. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44263 91177308-0d34-0410-b5e6-96231b3b80d8
* typoNick Lewycky2007-11-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44262 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix compiler warning.Dale Johannesen2007-11-211-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44261 91177308-0d34-0410-b5e6-96231b3b80d8
* This change does a couple of things. First it gets the Visual Studio builds ↵Chuck Rose III2007-11-2135-275/+5302
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | working. I added the lexing files to the VStudio projects and removed the .l files from the VStudio projects. There was a problem with use of strtoll in TGLexer.cpp and Chris suggested switching to strtol, so that's included here. Additionally, this checkin adds minimal x64 builds to the VStudio builds. Build issues related to x64 in the windows specific files for DynamicLibrary.inc and Singals.inc are worked around, but not ultimately solved. Binaries used to be stored in ...\win32\{Debug|Release} but are now kept in ...\win32\bin\{win32|x64}\{Debug|Release} intermediate files will continue to be stored in the individual project directories under win32. Some names will likely change in the future to reflect that the vstudio projects are no longer 32-bit only, but I wanted to get things up and running today so kept away from bigger restructuring. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44260 91177308-0d34-0410-b5e6-96231b3b80d8
* File missing from previous patch.Dale Johannesen2007-11-201-0/+15
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44259 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix .eh table linkage issues on Darwin. Some EH supportDale Johannesen2007-11-207-13/+44
| | | | | | | | for Darwin PPC, but it's not fully working yet. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44258 91177308-0d34-0410-b5e6-96231b3b80d8
* Add the ability to convert a tblgen type to a string.Chris Lattner2007-11-202-3/+21
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44257 91177308-0d34-0410-b5e6-96231b3b80d8
* In order for parameter attribute uniquing to makeDuncan Sands2007-11-202-8/+10
| | | | | | | | | | | | | any sense it is important that ParamAttr::None gets treated the same as not supplying an attribute at all. Rather than stripping ParamAttr::None out of the list of attributes, assert if ParamAttr::None is seen. Fix up the bitcode reader which liked to insert ParamAttr::None all over the place. Patch based on one by Török Edwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44250 91177308-0d34-0410-b5e6-96231b3b80d8
* Small cleanup. Use APInt::getHighBitsSet method instead of shift left.Nick Lewycky2007-11-201-5/+4
| | | | | | | "setcc" -> "icmp op" in comments. No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44249 91177308-0d34-0410-b5e6-96231b3b80d8
* Be more careful when transforming | to +. Patch from Wojciech Matyjewicz.Nick Lewycky2007-11-202-6/+26
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44248 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase for PR1811Chris Lattner2007-11-191-0/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44244 91177308-0d34-0410-b5e6-96231b3b80d8
* ExpandUnalignedLoad doesn't handle vectors right at all apparently.Chris Lattner2007-11-191-8/+22
| | | | | | | | | | | | | | | | Fix a couple of problems: 1. Don't assume the VT-1 is a VT that is half the size. 2. Treat vectors of FP in the vector path, not the FP path. This has a couple of remaining problems before it will work with the code in PR1811: the code below this change assumes that it can use extload/shift/or to construct the result, which isn't right for vectors. This also doesn't handle vectors of 1 or vectors that aren't pow-2. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44243 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement vector expand support for shuffle_vector. This fixes PR1811.Chris Lattner2007-11-191-0/+35
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44242 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove meaningless qualifiers from return types, avoiding compiler warnings.Dan Gohman2007-11-196-7/+7
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44240 91177308-0d34-0410-b5e6-96231b3b80d8
* Implement splitting of UNDEF nodes. This is the first step towards fixing PR1811Chris Lattner2007-11-191-0/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44239 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach me to do stuff late at night.Owen Anderson2007-11-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44236 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a typo in a comment.Dan Gohman2007-11-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44235 91177308-0d34-0410-b5e6-96231b3b80d8
* Add explicit keywords.Dan Gohman2007-11-196-16/+17
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44234 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support in SplitVectorOp for remainder operators.Dan Gohman2007-11-192-1/+19
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44233 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix a factually incorrect statement pointed out by Max Hailperin.Owen Anderson2007-11-191-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44228 91177308-0d34-0410-b5e6-96231b3b80d8
* Record the start of the current token, for use in error reporting.Chris Lattner2007-11-192-6/+11
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44227 91177308-0d34-0410-b5e6-96231b3b80d8
* Add carat diagnostics to tblgen lexer errors.Chris Lattner2007-11-192-33/+59
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44226 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix the Linker testcase regressions, by making MemoryBuffer::getFileOrSTDIN ↵Chris Lattner2007-11-182-6/+21
| | | | | | | | | return a valid but empty buffer if stdin is empty. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44219 91177308-0d34-0410-b5e6-96231b3b80d8
* autoupgrade files that use callfoo as call foo.Chris Lattner2007-11-181-1/+9
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44218 91177308-0d34-0410-b5e6-96231b3b80d8
* print a call to a fastcc function as:Chris Lattner2007-11-181-2/+2
| | | | | | | | | | | call x86_fastcallcc void @func( i32* %X, i64 0 ) not: callx86_fastcallcc void @func( i32* %X, i64 0 ) This fixes Codegen/X86/fast-cc-merge-stack-adj.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44217 91177308-0d34-0410-b5e6-96231b3b80d8
* fix bogus test that the more strict lexer is finding.Chris Lattner2007-11-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44216 91177308-0d34-0410-b5e6-96231b3b80d8
* Bugfix, this fixes CodeGen/X86/ldzero.ll and ↵Chris Lattner2007-11-181-1/+1
| | | | | | CodeGen/X86/2007-10-16-fp80_select.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44215 91177308-0d34-0410-b5e6-96231b3b80d8
* Replace the original flex lexer with a hand writen one. This Chris Lattner2007-11-189-4424/+929
| | | | | | | | drops a dependency on flex and lets us make future progress more easily. Yay for 2 fewer .cvs files to make silly conflicts with. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44213 91177308-0d34-0410-b5e6-96231b3b80d8
* minor cleanupsChris Lattner2007-11-181-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44212 91177308-0d34-0410-b5e6-96231b3b80d8
* ensure header is self contained.Chris Lattner2007-11-181-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44211 91177308-0d34-0410-b5e6-96231b3b80d8
* reimplement the tblgen lexer with a simple hand-written lexer. This eliminatesChris Lattner2007-11-186-2494/+516
| | | | | | | one dependency on flex and gets rid of two ".cvs" files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44210 91177308-0d34-0410-b5e6-96231b3b80d8
* Add support for vectors to int <-> float casts.Nate Begeman2007-11-178-39/+141
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44204 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted patch 44199:Ted Kremenek2007-11-172-111/+45
| | | | | | | | | | | | | http://llvm.org/viewvc/llvm-project?rev=44199&view=rev This patch completely broke serialization due to an invariant I assumed but did not hold. The assumed invariant was that all pointer IDs emitted by a call to BatchEmitOwnedPtrs would be consecutive. This is only the case if there has been no forward references to an owned pointer (and hence already registered with the Serializer object). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44203 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove indeterminism from a loop. We think this willDale Johannesen2007-11-171-2/+6
| | | | | | | | | fix an occasional nonrepeatable bootstrap failure we've been seeing on Darwin. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44202 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix denormal check in float->APInt conversion.Dale Johannesen2007-11-171-1/+1
| | | | | | | PR 1804. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44201 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed implementation of Serialize::EmitDiffPtrID andTed Kremenek2007-11-172-4/+5
| | | | | | | | | Deserialize::ReadDiffPtrID to read and emit bools instead of unsigned integers. This should result in a nice space optimization once we have "auto-abbreviation" generation in place. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44200 91177308-0d34-0410-b5e6-96231b3b80d8
* Implemented optimization for BatchEmitOwnedPtrs that we only emit one completeTed Kremenek2007-11-172-46/+111
| | | | | | | | | | | | | | SerializedPtrID, followed by the *differences* in IDs. The big idea is that most IDs will be just be 1 off from the previous (either that or NULL, which we encode as a difference if 0), so this will greatly reduce the encoding space for extra IDs to just 1 bit per pointer. So far this optimization reduces serialization of Carbon.h by only 1%, but we aren't using any abbreviations now in the Bitcode file to properly take advantage of this optimization. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44199 91177308-0d34-0410-b5e6-96231b3b80d8
* Live interval splitting:Evan Cheng2007-11-178-162/+631
| | | | | | | | | | | | | | | | | | | | When a live interval is being spilled, rather than creating short, non-spillable intervals for every def / use, split the interval at BB boundaries. That is, for every BB where the live interval is defined or used, create a new interval that covers all the defs and uses in the BB. This is designed to eliminate one common problem: multiple reloads of the same value in a single basic block. Note, it does *not* decrease the number of spills since no copies are inserted so the split intervals are *connected* through spill and reloads (or rematerialization). The newly created intervals can be spilled again, in that case, since it does not span multiple basic blocks, it's spilled in the usual manner. However, it can reuse the same stack slot as the previously split interval. This is currently controlled by -split-intervals-at-bb. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44198 91177308-0d34-0410-b5e6-96231b3b80d8
* Shrinkfy.Evan Cheng2007-11-171-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44197 91177308-0d34-0410-b5e6-96231b3b80d8
* Typo.Evan Cheng2007-11-161-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44196 91177308-0d34-0410-b5e6-96231b3b80d8
* Testcase from PR 1508 (although its's somewhatDale Johannesen2007-11-161-0/+133
| | | | | | | | orthogonal to the main problem there) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44194 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix for PR1801Tanya Lattner2007-11-161-0/+3
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@44193 91177308-0d34-0410-b5e6-96231b3b80d8