| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
| |
- Emits an unconditional branch, with extra logic to avoid generating
spurious branches out of dummy blocks.
llvm-svn: 59037
|
|
|
|
|
|
|
|
| |
the size of the -O0 output on some cases. For example, on expr.c from
176.gcc, it shrinks the .ll file from 43164 to 42835 lines, and removed
references to two external symbols.
llvm-svn: 59034
|
|
|
|
|
|
|
| |
condition is a constant. This shrinks -O0 codegen by quite a bit
on some cases.
llvm-svn: 59033
|
|
|
|
|
|
|
| |
"dummy" blocks (blocks just used to make sure we have a place to dump
code to).
llvm-svn: 59022
|
|
|
|
|
|
| |
- Was confusing and only used in one small part of the code.
llvm-svn: 59020
|
|
|
|
|
|
| |
- No functionality change.
llvm-svn: 59017
|
|
|
|
| |
llvm-svn: 58940
|
|
|
|
|
|
| |
assert.
llvm-svn: 57721
|
|
|
|
|
|
|
|
|
| |
simplifies clients.
Also, add assert that RegionStack is empty when the CGDebugInfo is
destroyed.
llvm-svn: 57684
|
|
|
|
| |
llvm-svn: 57392
|
|
|
|
|
|
| |
scoped decl chain.
llvm-svn: 57192
|
|
|
|
|
|
|
| |
handling blocks.
- This has false positives, but at least prevents miscompiles.
llvm-svn: 56958
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Provides a basic primitive to jump to an arbitrary basic block,
through the finally code.
- Only used for return statements and rethrow currently. Still need
to handle break, continue and goto.
- Code still needs to be shuffled around to live elsewhere.
llvm-svn: 56827
|
|
|
|
| |
llvm-svn: 56762
|
|
|
|
|
|
|
|
|
|
| |
- Add CodeGenFunction::{EmitReturnOfRValue, EmitIvarOffset}
- Factor EmitLValueForIvar out of EmitObjCIvarRefLValue.
No non-error functionality change (some unsupported errors are
degraded to asserts for the time being).
llvm-svn: 56543
|
|
|
|
| |
llvm-svn: 56102
|
|
|
|
| |
llvm-svn: 56101
|
|
|
|
|
|
|
| |
- For the time being this means our emitted code is somewhat worse,
especially for aggregates. This will be fixed.
llvm-svn: 56013
|
|
|
|
| |
llvm-svn: 55983
|
|
|
|
|
|
| |
Add CodeGenFunction::EmitMemSetToZero and make AggExprEmitter::EmitAggregateClear use it.
llvm-svn: 55573
|
|
|
|
|
|
| |
- Notably VLAs
llvm-svn: 55544
|
|
|
|
|
|
|
|
|
|
|
| |
Implement Obj-C lvalue message sends (aggregate returns).
Update several places to emit more precise ErrorUnsupported warnings
for currently unimplemented Obj-C features (main missing chunks are
property references, Obj-C exception handling, and the for ... in
syntax).
llvm-svn: 55234
|
|
|
|
|
|
|
| |
- We are beyond the point where this shows up often and when it does
generating miscompiled files is bad.
llvm-svn: 54836
|
|
|
|
|
|
|
|
|
|
|
| |
- Kill unnecessary #includes in .cpp files. This is an automatic
sweep so some things removed are actually used, but happen to be
included by a previous header. I tried to get rid of the obvious
examples and this was the easiest way to trim the #includes in one
fell swoop.
- We now return to regularly scheduled development.
llvm-svn: 54632
|
|
|
|
|
|
| |
- Remove internal uses of AST.h
llvm-svn: 54628
|
|
|
|
|
|
|
|
|
|
| |
- Follows emission scheme used by llvm-gcc, i.e. invent an id for
each label whose address is taken and replace each indirect goto by
a switch to each possible target.
- Currently we emit a switch for each indirect goto instead of
merging them as llvm-gcc does.
llvm-svn: 54318
|
|
|
|
| |
llvm-svn: 54100
|
|
|
|
| |
llvm-svn: 54099
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Fix multiple issues with the way case ranges were emitted, see test
cases details about the specific issues.
- The root issue was not being careful about how basic blocks were
emitted which led to them being chained together incorrectly,
resulting in improper control flow.
- Fixes <rdar://problem/6098585>
llvm-svn: 54006
|
|
|
|
|
|
|
|
|
|
| |
- Also cleaned up emission slightly
- Inspection of the code revealed several other bugs, however. Case
ranges are not properly wired and can result in switch cases being
dropped or even infinite loops. See: <rdar://problem/6098585>
Completes: <rdar://problem/6094119>
llvm-svn: 53975
|
|
|
|
|
|
|
|
|
|
| |
qualifier in the lvalue, and changes lvalue loads/stores to honor
the volatile flag. Places which need some further attention are marked
with FIXMEs.
Patch by Cédric Venet.
llvm-svn: 52264
|
|
|
|
|
|
| |
Also take care of freeing memory at the right places.
llvm-svn: 51553
|
|
|
|
|
|
|
|
|
|
|
|
| |
llvm::Type::isSingleValueType. Currently these two functions have
the same behavior, but soon isFirstClassType will return true for
struct and array types.
Clang may some day want to use of isFirstClassType for some of
these some day as an optimization, but it'll require some
consideration.
llvm-svn: 51446
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
actually work (instead of crashing llc), and there's enough info emitted
to get line number information in gdb. This should hopefully be helpful
for debugging non-working programs.
I got rid of the begin/endregion calls because the implementation wasn't
working; someone who knows the debugging info a bit better might try to
add it. I really have no clue how a compiler is supposed to emit them.
This commit shouldn't have any effect without -g.
llvm-svn: 51404
|
|
|
|
|
|
| |
ret.
llvm-svn: 51403
|
|
|
|
| |
llvm-svn: 50968
|
|
|
|
|
|
| |
information. This patch currently enables generation of line number debug information (stoppoints) and region begin/end debug information. The new files CGDebugInfo.h and CGDebugInfo.cpp implements the debug info manager class CGDebugInfo.
llvm-svn: 50848
|
|
|
|
| |
llvm-svn: 49279
|
|
|
|
|
|
| |
generator needs to call isAnyComplexType(). This fixes PR1960.
llvm-svn: 49220
|
|
|
|
|
|
| |
etoile runtime, patch by David Chisnall!
llvm-svn: 48969
|
|
lib dir and move all the libraries into it. This follows the main
llvm tree, and allows the libraries to be built in parallel. The
top level now enforces that all the libs are built before Driver,
but we don't care what order the libs are built in. This speeds
up parallel builds, particularly incremental ones.
llvm-svn: 48402
|