Commit Graph

56177 Commits

Author SHA1 Message Date
Ted Kremenek 77158a4b99 Add file I forgot to commit in previous commit.
llvm-svn: 66820
2009-03-12 18:42:19 +00:00
Daniel Dunbar 92c2af76c4 Driver: Value initialization is nicer than memset.
- Who wouldn't want correctness to hang critically on two easily
   ignored characters?

Thanks Doug!

llvm-svn: 66819
2009-03-12 18:42:02 +00:00
Ted Kremenek 9d1ce8faae PathDiagnostics:
- PathDiagnosticControlFlowPiece now consists of a "start" and "end" location
  to indicating the branch location and where the branch goes.

BugReporter:
- Updated BugReporter to construct PathDiagnosticControlFlowPiece objects with
  "end" locations.

PlistDiagnostics:
- Plists now contain the bug "type" (not just bug "category")
- Plists now encode control-flow pieces differently than events; now the
  "start" and "end" locations are recorded

llvm-svn: 66818
2009-03-12 18:41:53 +00:00
Daniel Dunbar f479c1293e Driver: Add majority of driver-driver implementation.
- Compare to driverdriver.c if bored; not completely fair since the
   driver gets a bit more code in other places to handle binding archs
   (for Xarch) but not completely unfair either.

Fear not, extra Action classes will have a happy home for their
vtables soon.

llvm-svn: 66817
2009-03-12 18:40:18 +00:00
Douglas Gregor c92208333f Use StmtVisitor to handle the decoding of expressions for
instantiation. This is roughly the structure we want to expression
instantiation.

llvm-svn: 66816
2009-03-12 18:36:18 +00:00
Gabor Greif c91aa9b857 Rearrange operands of the BranchInst, to be able to
access each with a fixed negative index from op_end().

This has two important implications:
- getUser() will work faster, because there are less iterations
  for the waymarking algorithm to perform. This is important
  when running various analyses that want to determine callers
  of basic blocks.
- getSuccessor() now runs faster, because the indirection via OperandList
  is not necessary: Uses corresponding to the successors are at fixed
  offset to "this".

The price we pay is the slightly more complicated logic in the operator
User::delete, as it has to pick up the information whether it has to free
the memory of an original unconditional BranchInst or a BranchInst that
was originally conditional, but has been shortened to unconditional.
I was not able to come up with a nicer solution to this problem. (And
rest assured, I tried *a lot*).

Similar reorderings will follow for InvokeInst and CallInst. After that
some optimizations to pred_iterator and CallSite will fall out naturally.

llvm-svn: 66815
2009-03-12 18:34:49 +00:00
Ted Kremenek 7398059c84 API fix: All "bodies" for functions, Objective-C methods, blocks, are assumed to
be CompoundStmts. I think this is a valid assumption, and felt that the API
should reflect it. Others please validate this assumption to make sure I didn't
break anything.

llvm-svn: 66814
2009-03-12 18:33:24 +00:00
Daniel Dunbar 57fc0194a8 Driver: Drop some unnecessary uses of clang namespace.
llvm-svn: 66813
2009-03-12 18:31:08 +00:00
Daniel Dunbar 446f684332 Driver: Introduce ActionList typedef, tweak some constness.
llvm-svn: 66809
2009-03-12 18:24:49 +00:00
Daniel Dunbar 208f0269e7 Driver: Add types::canLipoType helper method.
llvm-svn: 66807
2009-03-12 18:21:41 +00:00
Daniel Dunbar d5f7d2509b Driver: Add some HostInfo accessors.
llvm-svn: 66806
2009-03-12 18:20:49 +00:00
Daniel Dunbar 7c8d653a2c Driver: Add ArgList support for synthesizing arguments.
llvm-svn: 66805
2009-03-12 18:20:18 +00:00
Evan Cheng 2a332aa866 Re-apply 66024 with fixes: 1. Fixed indirect call to immediate address assembly. 2. Fixed JIT encoding by making the address pc-relative.
llvm-svn: 66803
2009-03-12 18:15:39 +00:00
Anders Carlsson 85ba59eade More ident fixes
llvm-svn: 66801
2009-03-12 17:55:17 +00:00
Dale Johannesen 578d8bfc3c Another missing check for debug intrinsics.
llvm-svn: 66800
2009-03-12 17:42:45 +00:00
Chris Lattner cf35ce9d0d add a callback for macro expansion, based on a patch by Paolo Bolzoni!
llvm-svn: 66799
2009-03-12 17:31:43 +00:00
Chris Lattner b0a553b925 Fully initialize all ivars, fixing PR3790, patch by Edwin Torok!
llvm-svn: 66798
2009-03-12 17:22:48 +00:00
Evan Cheng 56f9f80bb1 Typo.
llvm-svn: 66797
2009-03-12 17:07:39 +00:00
Douglas Gregor 573c7467df Straw man for instantiation of expressions. Use it to instantiate the
width of bitfields. 

I'll be burning this down and replacing it with a properly-dispatched
implementation like the one used for types.

llvm-svn: 66796
2009-03-12 16:53:44 +00:00
Evan Cheng f16a991262 Fix test after Chris' select changes.
llvm-svn: 66795
2009-03-12 16:10:08 +00:00
Daniel Dunbar 7586bb9de8 Driver: Add ArgList::getLastArg.
llvm-svn: 66794
2009-03-12 16:03:38 +00:00
Daniel Dunbar f336cc279c ccc: Fix broken assertion.
llvm-svn: 66793
2009-03-12 15:59:34 +00:00
Daniel Dunbar 024882184b ccc: Fix -ccc-print-phases when doing a universal build.
llvm-svn: 66792
2009-03-12 15:57:47 +00:00
Duncan Sands 0dd607cd13 Adjust this test for recent sroa improvements.
llvm-svn: 66791
2009-03-12 11:56:12 +00:00
Gabor Greif 02ab9ab66d add some text to explain sentinels
llvm-svn: 66790
2009-03-12 10:30:31 +00:00
Daniel Dunbar 4f495980c4 Add Diagnostic files for Frontend and move a couple errors over.
- Notably, clang now exits with an error if it can't find a
   file. This flushed out a bug in the CGColorSpace.c test case. :)

llvm-svn: 66789
2009-03-12 10:14:16 +00:00
Gabor Greif 4ef9bc053a minor tweaks
llvm-svn: 66788
2009-03-12 09:47:03 +00:00
Daniel Dunbar 5cd1e419b7 Driver: Tweak diag names to be more consistent.
llvm-svn: 66787
2009-03-12 09:13:48 +00:00
Daniel Dunbar c0b3e95a1a Driver: Use standard Diagnostic interface for diagnostics.
llvm-svn: 66786
2009-03-12 08:55:43 +00:00
Daniel Dunbar 33699689ed Driver: Fix thinko in Arg::hasArg.
llvm-svn: 66785
2009-03-12 08:45:11 +00:00
Daniel Dunbar d971762d5a Driver: '-' is parsed as an input.
llvm-svn: 66784
2009-03-12 08:44:47 +00:00
Daniel Dunbar 1688f1a7e0 Driver: Start sketching construction of abstract built actions.
llvm-svn: 66783
2009-03-12 07:58:46 +00:00
Zhongxing Xu 15adce4ea2 Add comments.
llvm-svn: 66782
2009-03-12 07:54:17 +00:00
Daniel Dunbar 1a8738935c Driver: Add information on Driver input/temporary types.
llvm-svn: 66781
2009-03-12 07:40:41 +00:00
Owen Anderson 36a9937883 Reorganize some #include's.
llvm-svn: 66780
2009-03-12 06:58:19 +00:00
Chris Lattner 4147f08e44 Move 3 "(add (select cc, 0, c), x) -> (select cc, x, (add, x, c))"
related transformations out of target-specific dag combine into the
ARM backend.  These were added by Evan in r37685 with no testcases
and only seems to help ARM (e.g. test/CodeGen/ARM/select_xform.ll).

Add some simple X86-specific (for now) DAG combines that turn things
like cond ? 8 : 0  -> (zext(cond) << 3).  This happens frequently
with the recently added cp constant select optimization, but is a
very general xform.  For example, we now compile the second example
in const-select.ll to:

_test:
        movsd   LCPI2_0, %xmm0
        ucomisd 8(%esp), %xmm0
        seta    %al
        movzbl  %al, %eax
        movl    4(%esp), %ecx
        movsbl  (%ecx,%eax,4), %eax
        ret

instead of:

_test:
        movl    4(%esp), %eax
        leal    4(%eax), %ecx
        movsd   LCPI2_0, %xmm0
        ucomisd 8(%esp), %xmm0
        cmovbe  %eax, %ecx
        movsbl  (%ecx), %eax
        ret

This passes multisource and dejagnu.

llvm-svn: 66779
2009-03-12 06:52:53 +00:00
Chris Lattner a492d29c23 improve comment.
llvm-svn: 66778
2009-03-12 06:46:02 +00:00
Evan Cheng 4465954638 Enable Chris' value propagation change. It make available known sign, zero, one bits information for values that are live out of basic blocks. The goal is to eliminate unnecessary sext, zext, truncate of values that are live-in to blocks. This does not handle PHI nodes yet.
llvm-svn: 66777
2009-03-12 06:29:49 +00:00
Evan Cheng ef0b7cc2d5 On x86, if the only use of a i64 load is a i64 store, generate a pair of double load and store instead.
llvm-svn: 66776
2009-03-12 05:59:15 +00:00
Chris Lattner 7b87e542dc add no-unwind, remove duplicate run line.
llvm-svn: 66775
2009-03-12 05:56:37 +00:00
Daniel Dunbar 6d3d46bbeb Driver: Add Option flags.
llvm-svn: 66774
2009-03-12 05:46:32 +00:00
Chris Lattner 1d5cf4bcdd add nounwinds
llvm-svn: 66773
2009-03-12 05:35:33 +00:00
Daniel Dunbar 6f2650de80 ccc: Tweak some group names.
llvm-svn: 66772
2009-03-12 04:50:20 +00:00
Bill Wendling 207495d8ea Revert r66765 and r66766. These were causing build failures on Darwin.
llvm-svn: 66770
2009-03-12 04:10:09 +00:00
Daniel Dunbar c800391fb9 Driver: Add definitions for all the gcc options the current ccc
understands.

llvm-svn: 66769
2009-03-12 03:55:01 +00:00
Zhongxing Xu 5a6fee9fb8 Use getAsRecordType() to get around sugar types.
llvm-svn: 66768
2009-03-12 03:45:35 +00:00
Daniel Dunbar c727e9310d Driver: Tweak option naming/def:
- Use OPT_ prefix for ids.

 - Reference groups and aliases by shortend id (on the theory that
   this is more readable).

 - Rename the special option ids to more protected names.

llvm-svn: 66767
2009-03-12 03:42:54 +00:00
Nick Lewycky c46949c278 Regenerate.
llvm-svn: 66766
2009-03-12 03:34:33 +00:00
Nick Lewycky ca433d8a84 Set ARCH to x86 on mixed 32/64-bit Linux systems.
Remove the explicit if OS = Darwin test around the setting of -m32/-m64.

llvm-svn: 66765
2009-03-12 03:34:19 +00:00
Daniel Dunbar a27669f1d8 ccc: Cleanup arguments a bit; we don't need a separate group for
-fblocks, and there were some duplicate options scattered in.

llvm-svn: 66764
2009-03-12 03:28:55 +00:00