| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
and clean recursive descent parser.
This change has a couple of ramifications:
1. The parser code is about 400 lines shorter (in what we maintain, not
including what is autogenerated).
2. The code should be significantly faster than the old code because we
don't have to work around bison's poor handling of datatypes with
ctors/dtors. This also makes the code much more resistant to memory
leaks.
3. We now get caret diagnostics from the .ll parser, woo.
4. The actual diagnostics emited from the parser are completely different
so a bunch of testcases had to be updated.
5. I now disallow "%ty = type opaque %ty = type i32". There was no good
reason to support this, it was just an accident of the old
implementation. I have no reason to think that anyone is actually using
this.
6. The syntax for sticking a global variable has changed to make it
unambiguous. I don't think anyone is depending on this since only clang
supports this and it is not solid yet, so I'm not worried about anything
breaking.
7. This gets rid of the last use of bison, and along with it the .cvs files.
I'll prune this from the makefiles as a subsequent commit.
There are a few minor cleanups that can be done after this commit (suggestions
welcome!) but this passes dejagnu testing and is ready for its time in the
limelight.
llvm-svn: 61558
|
|
|
|
| |
llvm-svn: 58696
|
|
|
|
| |
llvm-svn: 56513
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
returning an std::string by value, it fills in a SmallString/SmallVector
passed in. This significantly reduces string thrashing in some cases.
More specifically, this:
- Adds an operator<< and a print method for APInt that allows you to
directly send them to an ostream.
- Reimplements APInt::toString to be much simpler and more efficient
algorithmically in addition to not thrashing strings quite as much.
This speeds up llvm-dis on kc++ by 7%, and may also slightly speed up the
asmprinter. This also fixes a bug I introduced into the asmwriter in a
previous patch w.r.t. alias printing.
llvm-svn: 54873
|
|
|
|
|
|
| |
whitespace.
llvm-svn: 53453
|
|
|
|
| |
llvm-svn: 53438
|
|
|
|
| |
llvm-svn: 47343
|
|
|
|
| |
llvm-svn: 45418
|
|
|
|
|
|
|
| |
drops a dependency on flex and lets us make future progress more
easily. Yay for 2 fewer .cvs files to make silly conflicts with.
llvm-svn: 44213
|
|
|
|
|
|
|
| |
parameters. Rename ValueRefList to ParamList
in AsmParser, since its only use is for parameters.
llvm-svn: 43734
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use APFloat in UpgradeParser and AsmParser.
Change all references to ConstantFP to use the
APFloat interface rather than double. Remove
the ConstantFP double interfaces.
Use APFloat functions for constant folding arithmetic
and comparisons.
(There are still way too many places APFloat is
just a wrapper around host float/double, but we're
getting there.)
llvm-svn: 41747
|
|
|
|
|
|
| |
and strings.
llvm-svn: 37291
|
|
|
|
|
|
| |
Adapt handling of parameter attributes to use the new ParamAttrsList class.
llvm-svn: 35814
|
|
|
|
|
|
| |
named or numbered ValIDs.
llvm-svn: 35172
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Implement separation of local and global symbols. Local symbols and types
now use % prefix. Global variables and functions now use @ prefix.
For PR761:
Replace:
target endian =
target pointersize =
With:
target datalayout =
llvm-svn: 33524
|
|
|
|
|
|
|
| |
Merge ConstantIntegral and ConstantBool into ConstantInt.
Remove ConstantIntegral and ConstantBool from LLVM.
llvm-svn: 33073
|
|
|
|
|
|
| |
Regenerate
llvm-svn: 32782
|
|
|
|
| |
llvm-svn: 32144
|
|
|
|
|
|
|
|
|
|
|
| |
constant lists. This is just an internal change to the parser in
preparation for some backwards compatibility code that is to follow.
This will allow things like "uint 4000000000" to retain the unsignedness
of the integer constant as the value moves through the parser. In the
future, all integer types will be signless but parsing "uint" and friends
will be retained for backwards compatibility.
llvm-svn: 31964
|
|
|
|
|
|
|
|
|
|
| |
The long awaited CAST patch. This introduces 12 new instructions into LLVM
to replace the cast instruction. Corresponding changes throughout LLVM are
provided. This passes llvm-test, llvm/test, and SPEC CPUINT2000 with the
exception of 175.vpr which fails only on a slight floating point output
difference.
llvm-svn: 31931
|
|
|
|
|
|
|
|
|
| |
Retain the signedness of the old integer types in a new TypeInfo structure
so that it can be used in the grammar to implement auto-upgrade of things
that depended on signedness of types. This doesn't implement any new
functionality in the AsmParser, its just plumbing for future changes.
llvm-svn: 31866
|
|
|
|
|
|
|
|
| |
Make necessary changes to support DIV -> [SUF]Div. This changes llvm to
have three division instructions: signed, unsigned, floating point. The
bytecode and assembler are bacwards compatible, however.
llvm-svn: 31195
|
|
|
|
|
|
| |
ConstantBool::getTrue() and ConstantBool::getFalse().
llvm-svn: 30665
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Rid the Assembly Parser of exceptions. This is a really gross hack but it
will do until the Assembly Parser is re-written as a recursive descent.
The basic premise is that wherever the old "ThrowException" function was
called (new name: GenerateError) we set a flag (TriggerError). Every
production checks that flag and calls YYERROR if it is set. Additionally,
each call to ThrowException in the grammar is replaced with GEN_ERROR
which calls GenerateError and then YYERROR immediately. This prevents
the remaining production from continuing after an error condition.
llvm-svn: 29763
|
|
|
|
| |
llvm-svn: 25618
|
|
|
|
| |
llvm-svn: 24903
|
|
|
|
|
|
| |
Alexander Friedman
llvm-svn: 22146
|
|
|
|
|
|
| |
* Convert tabs to spaces
llvm-svn: 21415
|
|
|
|
| |
llvm-svn: 17053
|
|
|
|
|
|
|
|
| |
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/.
llvm-svn: 16137
|
|
|
|
| |
llvm-svn: 15325
|
|
|
|
|
|
|
| |
just to keep track of some per-object state! Gaah! Whoever wrote this stuff...
oh wait, that would be me. Never mind.
llvm-svn: 14790
|
|
|
|
| |
llvm-svn: 14201
|
|
|
|
| |
llvm-svn: 10596
|
|
|
|
| |
llvm-svn: 9903
|
|
|
|
| |
llvm-svn: 9321
|
|
|
|
| |
llvm-svn: 9270
|
|
|
|
| |
llvm-svn: 9071
|
|
|
|
| |
llvm-svn: 5786
|
|
|
|
| |
llvm-svn: 3709
|
|
|
|
|
|
|
|
|
|
| |
- Changed parser to always use parenthesis on ConstExprs to be consistent
- Parser now passes TRUE and FALSE tokens as a special case of the ConstExpr
machinery instead of a special case of constant int stuff
- Fix the AsmParser to use ValueRef ::= ConstExpr, and remove
ResolvedVal ::= ConstExpr this allows constexprs to be used in PHI nodes
llvm-svn: 3362
|
|
|
|
| |
llvm-svn: 2893
|
|
|
|
| |
llvm-svn: 2397
|
|
|
|
| |
llvm-svn: 2390
|
|
|
|
| |
llvm-svn: 2378
|
|
|
|
| |
llvm-svn: 2175
|
|
|
|
| |
llvm-svn: 2115
|
|
|
|
| |
llvm-svn: 1503
|
|
|
|
|
|
|
| |
Renamed op_const_iterator -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()
llvm-svn: 1408
|
|
|
|
|
|
|
| |
Rename ConstPool* -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407
|