Commit Graph

70488 Commits

Author SHA1 Message Date
David Goodwin de11f36ab7 Add aggressive anti-dependence breaker. Currently it is not the default for any target. Enable with -break-anti-dependencies=all.
llvm-svn: 85145
2009-10-26 19:32:42 +00:00
Dan Gohman 6a1d9eace9 Check in the experimental GEP splitter pass. This pass splits complex
GEPs (more than one non-zero index) into simple GEPs (at most one
non-zero index).  In some simple experiments using this it's not
uncommon to see 3% overall code size wins, because it exposes
redundancies that can be eliminated, however it's tricky to use
because instcombine aggressively undoes the work that this pass does.

llvm-svn: 85144
2009-10-26 19:12:14 +00:00
David Goodwin 6b16b5e741 Add virtual destructor.
llvm-svn: 85141
2009-10-26 19:00:47 +00:00
Mike Stump 99f11f769e Be sure to zero-extend. And refactor.
llvm-svn: 85140
2009-10-26 18:57:47 +00:00
Anton Korobeynikov 0ae1b2961d Revert r85134, it breaks mingw build
llvm-svn: 85138
2009-10-26 18:40:24 +00:00
Dan Gohman be881ee758 Add CreateZExtOrBitCast and CreateSExtOrBitCast to TargetFolder
for consistency with ConstantFolder.

llvm-svn: 85137
2009-10-26 18:36:40 +00:00
Mike Stump 722cedfb0d __builtin_object_size refinements. WIP.
llvm-svn: 85136
2009-10-26 18:35:08 +00:00
Dan Gohman 9aba0d9988 When checking whether a def of an aliased register is dead, ask the
machineinstr whether the aliased register is dead, rather than the original
register is dead. This allows it to get the correct answer when examining
an instruction like this:
  CALLpcrel32 <ga:foo>, %AL<imp-def>, %EAX<imp-def,dead>
where EAX is dead but a subregister of it is still live. This fixes PR5294.

llvm-svn: 85135
2009-10-26 18:26:18 +00:00
Sanjiv Gupta 752aea6513 Make PIC16 overlay a loadable pass.
llvm-svn: 85134
2009-10-26 18:22:59 +00:00
Sebastian Redl c6a9254f01 Convert some driver checks to FileCheck.
llvm-svn: 85133
2009-10-26 18:07:30 +00:00
Daniel Dunbar 431895f748 clang-cc: Allow building for x86_64 with -mmacosx-version-min=10.4.
llvm-svn: 85132
2009-10-26 17:52:49 +00:00
Chandler Carruth 6e0df53865 Switch vtable to linkeonce_odr. Patch by nlewycky.
llvm-svn: 85131
2009-10-26 17:14:14 +00:00
Devang Patel d6dd2a0840 Do not use expensive sort().
llvm-svn: 85130
2009-10-26 17:09:00 +00:00
Sebastian Redl 4afb7c58a4 Add fixit hint to bitwise precedence warning.
llvm-svn: 85129
2009-10-26 17:01:32 +00:00
Benjamin Kramer d9d8f15e0d Some svn:ignore tweaks.
llvm-svn: 85128
2009-10-26 17:01:20 +00:00
David Goodwin 8370485db9 Break anti-dependence breaking out into its own class.
llvm-svn: 85127
2009-10-26 16:59:04 +00:00
Devang Patel c80b5c8707 Add support to encode type info using llvm::Constant.
Patch by Talin!

llvm-svn: 85126
2009-10-26 16:54:35 +00:00
Douglas Gregor e0105ad38b assert -> llvm_unreachable
llvm-svn: 85125
2009-10-26 16:27:58 +00:00
Dan Gohman 6a10d5ebd3 Fix a typo in a comment.
llvm-svn: 85120
2009-10-26 15:55:24 +00:00
Chris Lattner 683eed3286 reapply r85085 with a bugfix to avoid infinite looping.
All of the 'demorgan' related xforms need to use 
dyn_castNotVal, not m_Not.

llvm-svn: 85119
2009-10-26 15:40:07 +00:00
Dan Gohman d632f89596 Make LSR's OptimizeShadowIV ignore induction variables with negative
strides for now, because it doesn't handle them correctly. This fixes a
miscompile of SingleSource/Benchmarks/Misc-C++/ray.

This problem was usually hidden because indvars transforms such induction
variables into negations of canonical induction variables.

llvm-svn: 85118
2009-10-26 15:32:57 +00:00
Sebastian Redl 4302824fe2 Implement a warning for mixing bitwise logical with comparison ops. Fixes PR5297.
llvm-svn: 85117
2009-10-26 15:24:15 +00:00
Rafael Espindola b3549d74da Rename -nostdclanginc to -nobuiltininc.
llvm-svn: 85116
2009-10-26 13:36:57 +00:00
Zhongxing Xu b7945461cb 'error' is usually used as a noreturn function. This can suppress some false
warnings. Eventually we need a way to import externally defined functions
summaries.

llvm-svn: 85092
2009-10-26 05:18:31 +00:00
Evan Cheng b81cb2a9a8 - Revert some changes from 85044, 85045, and 85047 that broke x86_64 tests and
bootstrapping. It's not safe to leave identity subreg_to_reg and insert_subreg
  around.
- Relax register scavenging to allow use of partially "not-live" registers. It's
  common for targets to operate on registers where the top bits are undef. e.g.
  s0 =
  d0 = insert_subreg d0<undef>, s0, 1
  ...
     = d0
  When the insert_subreg is eliminated by the coalescer, the scavenger used to
  complain. The previous fix was to keep to insert_subreg around. But that's
  brittle and it's overly conservative when we want to use the scavenger to 
  allocate registers. It's actually legal and desirable for other instructions
  to use the "undef" part of d0. e.g.
  s0 =
  d0 = insert_subreg d0<undef>, s0, 1
  ...
  s1 =
     = s1
     = d0
  We probably need add a "partial-undef" marker on machine operand so the
  machine verifier would not complain.

llvm-svn: 85091
2009-10-26 04:56:07 +00:00
Evan Cheng 8014a728b9 Revert 85085. It causes infinite looping during llvm-gcc build.
llvm-svn: 85090
2009-10-26 03:51:32 +00:00
Edward O'Callaghan 8a8e520937 Fix gmake check for AuroraUX triple.
llvm-svn: 85088
2009-10-26 02:37:56 +00:00
Chandler Carruth a3f084ce16 Update location of DataTypes.h to reflect move in LLVM with r85086.
llvm-svn: 85087
2009-10-26 01:37:10 +00:00
Chandler Carruth 56869f22c4 Move DataTypes.h to include/llvm/System, update all users. This breaks the last
direct inclusion edge from System to Support.

llvm-svn: 85086
2009-10-26 01:35:46 +00:00
Chris Lattner 2e6564d6ff Implement PR3266 & PR5276, folding:
not (or (icmp, icmp)) -> and(icmp, icmp)

llvm-svn: 85085
2009-10-26 01:06:31 +00:00
Chandler Carruth de3fa87685 Update the 'svn:ignore' property to remove stale file references.
llvm-svn: 85084
2009-10-25 23:54:41 +00:00
Chris Lattner 52880b29d2 convert or.ll to filecheck and merge or2 into it.
llvm-svn: 85083
2009-10-25 23:47:55 +00:00
Chandler Carruth b49a3ee01e Remove stale reference to ThreadSupport.h.
llvm-svn: 85082
2009-10-25 23:41:56 +00:00
Chris Lattner e38317f432 fix PR5295 where the .ll parser didn't reject a function after a global
or global after a function with conflicting names.  Update some testcases
that were accidentally depending on this behavior.

llvm-svn: 85081
2009-10-25 23:22:50 +00:00
Daniel Dunbar 495b478404 Phrase compile time assert in standard way.
llvm-svn: 85079
2009-10-25 23:11:15 +00:00
Daniel Dunbar 3d913cda5f Suppress -Asserts warning.
llvm-svn: 85078
2009-10-25 23:11:06 +00:00
Chris Lattner f4c2a9f02a fix PR5186: the JIT shouldn't try to codegen available_externally
functions it should just look them up like declarations.

llvm-svn: 85077
2009-10-25 23:06:42 +00:00
Chris Lattner c0c043903b rename getTypeSigned() -> isTypeSigned() per daniel's review.
llvm-svn: 85076
2009-10-25 22:49:18 +00:00
Chris Lattner c77f989687 Fix PR5298 - -Wmissing-noreturn shouldn't warn if the function is already
declared noreturn.

llvm-svn: 85075
2009-10-25 22:43:07 +00:00
Chandler Carruth 083524ae5c Remove unused includes.
llvm-svn: 85074
2009-10-25 22:38:41 +00:00
Chris Lattner b7df3c66c8 Implement rdar://6756623 - use of deprecated type in deprecated typedef should not warn
llvm-svn: 85073
2009-10-25 22:31:57 +00:00
Sebastian Redl e24b16205f Make sure we actually have a definition before asking if it is implicit. Fixes PR4674.
llvm-svn: 85072
2009-10-25 22:31:45 +00:00
Chris Lattner ecf328e6dd When parsing a top level struct declaration, make sure to
process decl attributes instead of dropping them on the floor.
This allows us to diagnose cases like the testcase.  Also don't
diagnose deprecated stuff in ActOnTag: not all uses of tags
may be 'uses', and SemaType does this now.

llvm-svn: 85071
2009-10-25 22:21:57 +00:00
Chris Lattner e40853aabd move calls to DiagnoseUseOfDecl (which warns about deprecated/unavailable
types) out of Sema::getTypeName into ConvertDeclSpecToType.  getTypeName
is sometimes used as a predicate in the parser, so it could cause redundant
diags to be emitted.  This is also needed by two upcoming enhancements.

llvm-svn: 85070
2009-10-25 22:09:09 +00:00
Chris Lattner de126cfa83 cleanups
llvm-svn: 85069
2009-10-25 22:05:13 +00:00
Sebastian Redl d7b3d7dd79 Remove the Skip parameter from GetTypeForDeclarator and dependents. Take the opportunity to improve an error message and fix PR4498.
llvm-svn: 85068
2009-10-25 21:45:37 +00:00
Chris Lattner 588f19acc1 remove a nonsensical todo
llvm-svn: 85067
2009-10-25 21:19:07 +00:00
Daniel Dunbar fb049eef8f Tweak test, with -strict-whitespace $ won't match on Windows because the buffer
will have \r\n.
 - Perhaps we should make FileCheck normalize line-endings, even in
   strict-whitespace mode?

llvm-svn: 85066
2009-10-25 20:34:02 +00:00
Jim Grosbach 5bde1cbd93 of -> or
llvm-svn: 85065
2009-10-25 19:14:48 +00:00
Jim Grosbach 5a9788b979 80-column cleanup
llvm-svn: 85064
2009-10-25 18:55:46 +00:00