Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 8739075
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 13, 20262026-06-13T10:51:45+00:00 2026-06-13T10:51:45+00:00

Why all programs are divided into 200 basic blocks by Valgrind? And how to

  • 0

Why all programs are divided into 200 basic blocks by Valgrind? And how to divided?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-13T10:51:46+00:00Added an answer on June 13, 2026 at 10:51 am

    First Question

    It’s been some time since I’ve worked on a Valgrind tool (even longer than this question is old), but in case anyone is still interested, here’s what I’ve dredged up from memory:

    First, a distinction: a super block is a bit different from a basic block. Valgrind uses super blocks, not basic blocks. A super block may exit at any point, but a basic block will only ever exit by running off its end.

    Valgrind doesn’t divide a program into 200 super blocks. I’m pretty sure that it instead breaks programs up into super blocks of no more than 200 IRStatements (which may or may not translate directly into instructions).

    The reason for this I’m pretty sure is for efficiency of the translator: at least with current versions of Valgrind I’m reasonably sure it doesn’t translate your entire program up front. Translating the program into its IR format is time consuming and resource intensive, so the translator seeks to only translate as much of the program as it needs to. It does this by only translating code as it gets executed for the first time.

    Second Question

    Now, as to your second question… I’m not entirely sure what you’re asking. If you’re asking, “How does Valgrind decide how to divide up the program?”, then the answer is that it decides similarly to a compiler. It starts converting the program into super blocks, and starts a new super block whenever it reaches the block limit size or detects that there is an entry point into the block from elsewhere (super blocks and basic blocks can only have one entry point).

    If you instead meant, “Can I change the size of an IRSB super block?”, then yes, there is an option you can pass back to Valgrind in your tools initialization code to tell it what size super blocks you want (although I don’t recall if you can increase this to an arbitrary size). None of this is documented online, and only sparsely documented in the files themselves. You can take a look at the source to the other tools to see how they pass configuration options to Valgrind during initialization. That should at least give you a good idea on which headers to look at to figure out what option you need to pass back to Valgrind.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

How do I list all programs installed on my computer? I've tried using the
I've been programming with Qt libraries for 3 years. All programs have been designed
We have a few different programs all compiled together in the same suite, recently
Since UNIX has all those wonderful filter-like programs (such as grep , sed ,
I installed all the necessary packages for running GUI programs in Cygwin. Right now,
First of all, to clarify my goal: There exist two programs written in C
Below is python code that attempts to find the sum of all values divided
My program has 2 parts divided into the core and downloader. The core handles
I am working on a little multi-threading project.The system could be divided into 2
I got a problem regarding parsing XML data. I have divided my program into

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.